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:

services:
  logdeck:
    image: amoabakelvin/logdeck:latest
    container_name: logdeck
    ports:
      - "8123:8080"
    environment:
      # 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 for container management
      - /var/run/docker.sock:/var/run/docker.sock
      # Mount /proc for system stats (CPU, memory usage)
      - /proc:/host/proc: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:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /proc:/host/proc:ro \
  --restart unless-stopped \
  amoabakelvin/logdeck:latest

With Authentication

docker run -d \
  --name logdeck \
  -p 8123:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /proc:/host/proc: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 \
  amoabakelvin/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
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.

LogDeck needs write access to the Docker socket for container management features (start, stop, restart). If you only need log viewing, you can mount it read-only (:ro) 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 amoabakelvin/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:8080"  # 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.