Installation
Only Docker installation is supported.
Quick Start
⚠️ Critical: Directory Permissions ⚠️ You MUST create the bind
mount directory (data
) before starting the container. The container runs as user 1000:1000
, not root, and cannot modify host directory permissions for you.
If you skip step 1, Docker will create the directory as root
, and the container will fail to start with permission errors.
Custom paths: Want your data elsewhere?
Create the directory first:
mkdir -p ~/Documents/gdluxx
Then update your compose volumes
to: - ~/Documents/gdluxx:/app/data
⚠️ Create the data directory first ⚠️
bashmkdir data
Copy environment file.
bashcp .env.example .env
Generate your
AUTH_SECRET
. (Windows Note)bashopenssl rand -hex 32
Paste your generated
AUTH_SECRET
into your.env
file.bashAUTH_SECRET=your-super-secret-auth-key-change-this
Configure your
ORIGIN
.The
ORIGIN
environment variable is a critical security setting that tells gdluxx what domain to expect for all requests. This helps prevent CSRF attacks.In your
.env
file, setORIGIN
to the URL you will use to access the application.- Most common: If you're accessing the app via
http://localhost:7755
, you don't need to do anything. Thedocker-compose.yml
file already sets a defaultORIGIN
ofhttp://localhost:7755
. - Network access: If you're accessing the app from another device on your network, set
ORIGIN
to your server's IP address. - Reverse proxy: If you're using a reverse proxy with HTTPS, set
ORIGIN
to your domain.
For more specifics, see the comments in the
.env.example
file.- Most common: If you're accessing the app via
Create a
docker-compose.yml
file.yamlname: gdluxx services: gdluxx: image: ghcr.io/gdluxx/gdluxx:latest container_name: gdluxx ports: - '7755:7755' volumes: - ./data:/app/data environment: - AUTH_SECRET=${AUTH_SECRET} - ORIGIN=${ORIGIN:-http://localhost:7755} restart: unless-stopped deploy: restart_policy: condition: on-failure max_attempts: 3 delay: 3s
Run
docker compose up -d
.bashdocker compose up -d
Windows Users
If you are on Windows, you may not have openssl
. You can use the Windows Subsystem for Linux (WSL), Git Bash, or an alternative tool like CryptoTool's OpenSSL to generate the secret.
Also, I know nothing about Windows these days. I've never used WSL, Git Bash, or Docker on Windows. Unfortunately, I won't be able to assist with troubleshooting any issues that may arise.
This also means I've not tested any of this on Windows.