Skip to content

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

Deployment

Step 1 - Download the required files

bash
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/compose

Step 2 - Populate the .env file

bash
cp .env.compose .env

Generate secret values:

bash
openssl rand -hex 32  # use as JWT_SECRET
openssl rand -hex 16  # use as DB_PASSWORD

Open the file for editing:

bash
nano .env

Set the following values:

  • JWT_SECRET — paste the 64-character value generated above
  • DB_PASSWORD — paste the 32-character value generated above
  • APP_PORT — change from 8080 if that port is already in use on your server
  • TZ — your timezone (e.g. Europe/Berlin); defaults to UTC

WARNING

Do not leave JWT_SECRET and DB_PASSWORD at their default placeholder values on a production server.

Step 3 - Start the containers

bash
docker compose --env-file .env -f docker-compose.yml up --build -d

The 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

bash
# 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