Installation

Multiple ways to install and deploy LogDeck for your environment.

Docker Compose (Recommended)

Docker Compose is the recommended way to deploy LogDeck. It provides easy configuration and management.

Step 1: Create docker-compose.yml

Create a docker-compose.yml file with the following content:

version: '3.8'

services:
  logdeck:
    image: logdeck/logdeck:latest
    container_name: logdeck
    ports:
      - "8123:8123"
    environment:
      # Optional: Configure backend port
      # BACKEND_PORT: 8080

      # Optional: Manage multiple Docker hosts
      # DOCKER_HOSTS: local=unix:///var/run/docker.sock,prod=ssh://deploy@prod.example.com

      # Optional: Enable authentication
      # JWT_SECRET: your-super-secret-key-min-32-chars
      # ADMIN_USERNAME: admin
      # ADMIN_PASSWORD_SALT: your-random-salt-change-this
      # ADMIN_PASSWORD: your-sha256-hash
    volumes:
      # Mount the Docker socket (read-only for security)
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # Mount SSH keys if you use ssh:// hosts
      # - ~/.ssh:/root/.ssh:ro
    restart: unless-stopped

Step 2: Start LogDeck

docker-compose up -d

Step 3: Verify It's Running

docker-compose ps

Step 4: Access the Interface

Open your browser and navigate to http://localhost:8123

Docker Run

For a quick deployment without Docker Compose, use the docker run command:

Basic Deployment

docker run -d \
  --name logdeck \
  -p 8123:8123 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --restart unless-stopped \
  logdeck/logdeck:latest

With Authentication

docker run -d \
  --name logdeck \
  -p 8123:8123 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -e JWT_SECRET=your-super-secret-key-min-32-chars \
  -e ADMIN_USERNAME=admin \
  -e ADMIN_PASSWORD_SALT=your-random-salt-change-this \
  -e ADMIN_PASSWORD=your-sha256-hash \
  --restart unless-stopped \
  logdeck/logdeck:latest

Configure Multiple Docker Hosts

Manage more than one Docker daemon by setting DOCKER_HOSTS with comma-separated name=host entries.

# Local Docker + remote SSH host
export DOCKER_HOSTS="local=unix:///var/run/docker.sock,prod=ssh://deploy@prod.example.com"
# Then start LogDeck with docker run or docker compose

For ssh:// targets, mount your SSH keys (e.g., ~/.ssh) or forward your SSH agent socket into the container.

Environment Variables

LogDeck can be configured using the following environment variables:

Server Configuration
BACKEND_PORT

Port for the backend server. Default: 8080

DOCKER_HOSTS

Comma-separated Docker hosts using name=host format (supports unix://, tcp://, and ssh://). Defaults to local=unix:///var/run/docker.sock when unset.

Authentication (Optional)
Leave these unset to disable authentication completely
JWT_SECRET

Secret key for JWT token signing. Must be at least 32 characters.

ADMIN_USERNAME

Admin username for authentication.

ADMIN_PASSWORD_SALT

Random salt for password hashing. Use a strong, random string.

ADMIN_PASSWORD

SHA256 hash of (password + salt). See configuration guide for generation instructions.

Docker Socket Access

Security Note
Mounting the Docker socket gives LogDeck access to your Docker daemon

The Docker socket (/var/run/docker.sock) provides full access to the Docker daemon. Only run LogDeck on trusted networks or enable authentication to protect access.

We mount it as read-only (:ro) by default, but LogDeck needs write access for container management features (start, stop, restart). If you only need log viewing, keep it read-only and enable read-only mode in LogDeck.

Updating LogDeck

To update to the latest version of LogDeck:

With Docker Compose

docker-compose pull
docker-compose up -d

With Docker Run

docker stop logdeck
docker rm logdeck
docker pull logdeck/logdeck:latest
# Then run your docker run command again

Troubleshooting

Container Won't Start

Check the logs:

docker logs logdeck

Can't See Any Containers

Ensure the Docker socket is properly mounted:

docker inspect logdeck | grep docker.sock

Port Already in Use

If port 8123 is already in use, change it in your docker-compose.yml or docker run command:

- "8124:8123"  # Use port 8124 instead
Need More Help?
If you're still having issues, please open an issue on GitHub with details about your setup and the error you're seeing.