Deploy Fuxico in seconds. Choose between 12-factor Docker Compose with automated Watchtower updates, or the lightweight single-file portable fuxico.php bundle.
The official production container is built on FrankenPHP Alpine, running as a non-root user with persistent storage and scoped Watchtower auto-updates:
services:
fuxico:
image: lumenpink/fuxico:latest
container_name: fuxico
restart: unless-stopped
ports:
- "8080:8080"
environment:
- FUXICO_PUBLIC_MODE=true
- FUXICO_DATA_DIR=/workspace/data
- FUXICO_AUTH_TOKENS=tatanka
volumes:
- ./data:/workspace/data
labels:
- "com.centurylinklabs.watchtower.scope=fuxico"
watchtower:
image: containrrr/watchtower
container_name: fuxico_watchtower
restart: unless-stopped
environment:
- WATCHTOWER_SCOPE=fuxico
- WATCHTOWER_POLL_INTERVAL=3600
- WATCHTOWER_CLEANUP=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
docker compose up -d
Download fuxico.php directly and run it on any server or VPS with PHP 8.2+. No vendor folder, no database installation, no build steps:
# 1. Download standalone server bundle: curl -O https://fuxico.2lp.in/fuxico.php # 2. Run instant built-in web server: FUXICO_PUBLIC_MODE=true php -S 0.0.0.0:8080 fuxico.php
fux.example.com {
encode zstd gzip
request_body {
max_size 512MB
}
reverse_proxy 127.0.0.1:8080
}
server {
listen 80;
server_name fux.example.com;
client_max_body_size 500M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Configure Fuxico using standard environment variables:
| Variable | Default | Description |
|---|---|---|
FUXICO_PUBLIC_MODE |
false |
When true, uploads are open to everyone (0x0.st public mode). When false, uploads require a master token. |
FUXICO_AUTH_TOKENS |
tatanka |
Comma-separated list of valid master tokens for private instances. |
FUXICO_DATA_DIR |
./data |
Root directory where SQLite database and encrypted file storage are maintained. |
FUXICO_MAX_UPLOAD_SIZE |
524288000 |
Maximum allowed payload upload size in bytes (default: 500 MB). |
FUXICO_SLUG_LENGTH |
5 |
Character length of standard random slugs (e.g. /abcde.png). |
FUXICO_SECRET_SLUG_LENGTH |
16 |
Character length of high-entropy secret slugs (e.g. /8x9yt4m2k9p1q7z0.png). |
FUXICO_BASE_URL |
(auto-detected) | Explicitly override base URL (e.g., https://fux.example.com). |
FUXICO_LANG |
en |
Default fallback UI language (pt or en). Auto-detects Accept-Language when unset. |