linx-server
June 10, 2025 ยท View on GitHub
Self-hosted file/media sharing website.
Clients
Official
- CLI: linx-client - Source
Unofficial
- Android: LinxShare - Source | Google Play
- CLI: golinx - Source
Features
- 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
Screenshots
Getting started
Using Docker
- Create
datadirectory and runchown -R 65534:65534 data - Optionally, create a config file (example), we'll refer to it as
config.tomlin 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.
Using a binary release
- Grab the latest binary from the releases
- Run
linx-server --config=path/to/config.toml
Usage
Configuration
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
Options
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_.
Deployment
Linx-server supports being deployed in a subdirectory (ie. example.com/mylinx/) as well as on its own (example.com/).
1. Using the built-in http server
Run linx-server normally.
2. Using the built-in https server
Run linx-server with the cert-file = path/to/cert.file and key-file = path/to/key.file options.
Author
- Andrei Marcu, https://andreim.net
- Gabe Cook, https://gabecook.com