linx-server/README.md

102 lines
4 KiB
Markdown
Raw Normal View History

2015-09-29 03:46:50 +00:00
2015-09-24 05:44:49 +00:00
Linx Server
======
2015-09-28 04:41:37 +00:00
[![Build Status](https://travis-ci.org/andreimarcu/linx-server.svg?branch=master)](https://travis-ci.org/andreimarcu/linx-server)
2015-09-29 03:46:50 +00:00
Soon-to-be opensource replacement of Linx (media-sharing website)
2015-09-24 05:44:49 +00:00
2015-09-29 03:46:50 +00:00
**Consider it in pre-alpha development stages.**
2015-09-24 05:44:49 +00:00
2015-09-29 03:46:50 +00:00
Get release and run
-------------------
1. Grab the latest binary from the [releases](https://github.com/andreimarcu/linx-server/releases)
2. Run ```./linx-server...```
2015-09-29 03:46:50 +00:00
Command-line options
--------------------
2015-09-24 05:44:49 +00:00
2015-10-10 06:16:30 +00:00
- ```-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/)
2015-10-08 05:40:03 +00:00
- ```-maxsize 4294967296``` maximum upload file size in bytes (default 4GB)
2015-10-07 17:25:38 +00:00
- ```-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)
2015-10-12 07:02:09 +00:00
- ```-contentsecuritypolicy "..."``` -- Content-Security-Policy header for pages (default is "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; referrer origin;")
- ```-filecontentsecuritypolicy "..."``` -- Content-Security-Policy header for files (default is "default-src 'none'; img-src 'self'; object-src 'self'; media-src 'self'; sandbox; referrer origin;"")
2015-10-05 02:43:42 +00:00
- ```-xframeoptions "..." ``` -- X-Frame-Options header (default is "SAMEORIGIN")
2015-10-02 00:58:08 +00:00
- ```-remoteuploads``` -- (optionally) enable remote uploads (/upload?url=https://...)
2015-10-12 00:32:28 +00:00
- ```-realip``` -- (optionally) let linx-server know you (nginx, etc) are providing the X-Real-IP and/or X-Forwarded-For headers.
- ````-authfile path/to/authfile``` -- (optionally) require authorization for upload/delete by providing a newline-separated file of scrypted auth keys
- ````-remoteauthfile path/to/remoteauthfile``` -- (optionally) require authorization for remote uploads by providing a newline-separated file of scrypted auth keys
- ```-fastcgi``` -- (optionally) serve through fastcgi
- ```-nologs``` -- (optionally) disable request logs in stdout
Deployment
----------
2015-10-07 17:25:38 +00:00
#### 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;
}
}
```
2015-10-07 17:25:38 +00:00
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.
2015-09-26 01:49:33 +00:00
Development
-----------
Any help is welcome, PRs will be reviewed and merged accordingly.
The official IRC channel is #linx on irc.oftc.net
2015-09-29 03:46:50 +00:00
1. ```go get -u github.com/andreimarcu/linx-server ```
2. ```cd $GOPATH/src/github.com/andreimarcu/linx-server ```
3. ```go build && ./linx-server```
2015-09-26 01:49:33 +00:00
2015-09-24 05:44:49 +00:00
TODO
2015-09-26 01:49:33 +00:00
----
2015-09-24 05:44:49 +00:00
Please refer to the [main TODO issue](https://github.com/andreimarcu/linx-server/issues/1)
2015-09-29 03:46:50 +00:00
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/>.
2015-09-24 05:44:49 +00:00
Author
-------
2015-09-28 04:41:37 +00:00
Andrei Marcu, http://andreim.net/