Direct No HTTPS
Runs Bearicorn without a web router. The app is accessible directly on a configurable port (default: 8080).
Use this for internal networks, local testing, or when an existing reverse proxy (nginx, Apache, etc.) already handles HTTPS in front of the app.
WARNING
Do not expose this setup directly to the public internet without HTTPS. Passwords and session data will travel unencrypted.
Requirements
- Docker installed — Debian/Ubuntu · Fedora · Alpine
Deployment
Step 1 - Download the required files
sudo mkdir -p /opt/bearicorn
sudo chown "$USER":"$USER" /opt/bearicorn
cd /opt/bearicorn
git clone https://github.com/bybearicorn/monorepo.git
cd monorepo/deploy/composeStep 2 - Populate the .env file
cp .env.compose .envGenerate secret values:
openssl rand -hex 32 # use as JWT_SECRET
openssl rand -hex 16 # use as DB_PASSWORDOpen the file for editing:
nano .envSet the following values:
JWT_SECRET— paste the 64-character value generated aboveDB_PASSWORD— paste the 32-character value generated aboveAPP_PORT— change from8080if that port is already in use on your serverTZ— your timezone (e.g.Europe/Berlin); defaults toUTC
WARNING
Do not leave JWT_SECRET and DB_PASSWORD at their default placeholder values on a production server.
Step 3 - Start the containers
docker compose --env-file .env -f docker-compose.yml up --build -dThe first build takes 3–5 minutes. Subsequent starts are near-instant.
Access the application
Navigate to http://YOUR_SERVER_IP:8080 (or the port you configured).
The first user to register becomes the admin. Database migrations run automatically on first start.
Management
# View logs
docker compose -f docker-compose.yml logs -f
# Check container status
docker compose -f docker-compose.yml ps
# Restart all containers
docker compose -f docker-compose.yml restart
# Stop all containers
docker compose -f docker-compose.yml down
# Update to the latest version
git pull && docker compose -f docker-compose.yml up --build -d