Go to file
mutantmonkey dd4ac3a7ed add support remote auth keys
These are taken as a parameter to the remote upload page. Note that all
keys will be logged since this is a GET request.
2015-10-11 19:31:13 -07:00
static add tab functionality to pastebin (resolves #48) 2015-10-09 22:21:23 -07:00
templates Document overwriting a file 2015-10-11 20:28:46 -04:00
.gitignore Add preliminary metadata support 2015-09-27 22:43:41 -04:00
.travis.yml No need for sudo since we got rid of that library 2015-09-29 00:42:56 -04:00
LICENSE.txt Updated README and license 2015-09-28 23:46:50 -04:00
README.md add support for auth keys 2015-10-11 17:34:53 -07:00
auth.go move reading auth keys into readAuthKeys 2015-10-11 19:30:01 -07:00
auth_test.go add some more auth tests 2015-10-11 18:37:36 -07:00
build.sh Added basic build script 2015-10-02 22:23:38 -04:00
csp.go Cleanup vim artifacts 2015-10-04 18:24:13 -04:00
csp_test.go Adjust the csp_test to use the new mux 2015-10-10 11:17:38 -04:00
csrf.go add strict referrer check for POST uploads 2015-10-08 20:27:04 -07:00
delete.go Metadata holds mimetype, sha256sum, archiveFiles 2015-10-07 22:45:34 -04:00
display.go Metadata holds mimetype, sha256sum, archiveFiles 2015-10-07 22:45:34 -04:00
expiry.go Metadata holds mimetype, sha256sum, archiveFiles 2015-10-07 22:45:34 -04:00
fileserve.go Cache static files + Separate CSS more. Fixes #44 2015-10-07 23:35:48 -04:00
meta.go Metadata holds mimetype, sha256sum, archiveFiles 2015-10-07 22:45:34 -04:00
pages.go Case insensitive fs again 2015-10-08 23:58:57 -04:00
server.go add support remote auth keys 2015-10-11 19:31:13 -07:00
server_test.go add some more auth tests 2015-10-11 18:37:36 -07:00
templates.go Case-insensitive filesystems... 2015-10-08 21:50:10 -04:00
torrent.go Metadata holds mimetype, sha256sum, archiveFiles 2015-10-07 22:45:34 -04:00
torrent_test.go Cleanup vim artifacts 2015-10-04 18:24:13 -04:00
upload.go add support remote auth keys 2015-10-11 19:31:13 -07:00
util.go Tests + fixes 2015-10-07 03:00:03 -04:00

README.md

Linx Server

Build Status

Soon-to-be opensource replacement of Linx (media-sharing website)

Consider it in pre-alpha development stages.

Get release and run

  1. Grab the latest binary from the releases
  2. Run ./linx-server...

Command-line options

  • -bind 127.0.0.1:8080 -- what to bind to (default is 127.0.0.1:8080)
  • -sitename myLinx -- the site name displayed on top (default is linx)
  • -siteurl "http://mylinx.example.org/" -- the site url (for generating links)
  • -filespath files/" -- Path to store uploads (default is files/)
  • -metapath meta/ -- Path to store information about uploads (default is meta/)
  • -maxsize 4294967296 maximum upload file size in bytes (default 4GB)
  • -certfile path/to/your.crt -- Path to the ssl certificate (required if you want to use the https server)
  • -keyfile path/to/your.key -- Path to the ssl key (required if you want to use the https server)
  • -contentsecuritypolicy "..." -- Content-Security-Policy header for pages (default is "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; referrer none;")
  • -filecontentsecuritypolicy "..." -- Content-Security-Policy header for files (default is "default-src 'none'; img-src 'self'; object-src 'self'; media-src 'self'; sandbox; referrer none;"")
  • -xframeoptions "..." -- X-Frame-Options header (default is "SAMEORIGIN")
  • -remoteuploads -- (optionally) enable remote uploads (/upload?url=https://...)
  • -realip -- (optionally) let linx-server know you (nginx, etc) are providing the X-Real-IP and/or X-Forwarded-For headers.
  • ````-authfile``` -- (optionally) require authorization for upload/delete by providing a newline-separated file of scrypted auth keys
  • -fastcgi -- (optionally) serve through fastcgi
  • -nologs -- (optionally) disable request logs in stdout

Deployment

1. Using fastcgi

A suggested deployment is running nginx in front of linx-server serving through fastcgi. This allows you to have nginx handle the TLS termination for example.
An example configuration:

server {
    ...
    server_name yourlinx.example.org;
    ...
    
    client_max_body_size 4096M;
    location / {
        fastcgi_pass 127.0.0.1:8080;
        include fastcgi_params;
    }
}

And run linx-server with the -fastcgi option.

2. Using the built-in https server

Run linx-server with the -certfile path/to/cert.file and -keyfile path/to/key.file options.

3. Using the built-in http server

Run linx-server normally.

Development

Any help is welcome, PRs will be reviewed and merged accordingly.
The official IRC channel is #linx on irc.oftc.net

  1. go get -u github.com/andreimarcu/linx-server
  2. cd $GOPATH/src/github.com/andreimarcu/linx-server
  3. go build && ./linx-server

TODO

Please refer to the main TODO issue

License

Copyright (C) 2015 Andrei Marcu

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author

Andrei Marcu, http://andreim.net/