Self-hosted file/media sharing website.
Official
- CLI: linx-client - Source
Unofficial
- Android: LinxShare - Source | Google Play
- CLI: golinx - Source
- Display common filetypes (image, video, audio, markdown, pdf)
- Display syntax-highlighted code with in-place editing
- Documented API with keys for restricting uploads
- Torrent download of files using web seeding
- File expiry, deletion key, file access key, and random filename options
- Create
data
directory and runchown -R 65534:65534 data
- Optionally, create a config file (example), we'll refer to it as
config.toml
in the following examples
Example running
docker run \
-p 8080:8080 \
-v /path/to/config.toml:/data/config.toml \
-v /path/to/data:/data \
ghcr.io/gabe565/linx-server
Example with Docker Compose:
services:
linx-server:
container_name: linx-server
image: ghcr.io/gabe565/linx-server
command: --config=/data/config.toml
volumes:
- /path/to/data:/data
- /path/to/config.toml:/data/config.toml
ports:
- "8080:8080"
restart: unless-stopped
Ideally, you would use a reverse proxy such as nginx or caddy to handle TLS certificates.
- Grab the latest binary from the releases
- Run
linx-server --config=path/to/config.toml
All configuration options are accepted either as arguments or can be placed in a file as such (see example):
bind = '127.0.0.1:8080'
site-name = 'myLinx'
max-size = '4 MiB'
max-expiry = '24h'
# ... etc
...and then run linx-server --config=path/to/config.toml
See the example configuration file or the command-line docs.
Any config can be provided as an environment variable by capitalizing it, changing -
to _
, and prefixing it with LINX_
.
Linx-server supports being deployed in a subdirectory (ie. example.com/mylinx/) as well as on its own (example.com/).
Run linx-server normally.
Run linx-server with the cert-file = path/to/cert.file
and key-file = path/to/key.file
options.
- Andrei Marcu, https://andreim.net
- Gabe Cook, https://gabecook.com