Getting Started
Open-source log management. Privacy-first. Self-hosted or cloud.
Deployment Options
Zero setup required. Start logging in seconds.
Self-Hosted Quick Start
Prerequisites
- Docker Engine - Container runtime
- Docker Compose - Multi-container orchestration
That's it! No Node.js, no build tools, no database setup. Uses pre-built images from Docker Hub.
Installation (2 minutes)
# 1. Create project directory
mkdir logtide && cd logtide
# 2. Download configuration files
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/docker-compose.yml
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/.env.example
mv .env.example .env
# 3. Configure your .env file (IMPORTANT!)
nano .env
# Required changes:
# - DB_PASSWORD: set a secure password
# - REDIS_PASSWORD: set a secure password
# - API_KEY_SECRET: run "openssl rand -base64 32" and paste the result
# - PUBLIC_API_URL: set to http://YOUR_SERVER_IP:8080 (if accessing remotely)
# 4. Start LogTide
docker compose up -d
# 5. Access the dashboard
# Frontend: http://localhost:3000
# API: http://localhost:8080
# Optional: Enable Docker log collection
# Download Fluent Bit configs and restart with --profile logging
# curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/{fluent-bit.conf,parsers.conf,extract_container_id.lua,map_syslog_level.lua,wrap_logs.lua}
# docker compose --profile logging up -d - Pulls pre-built images from Docker Hub
- Starts PostgreSQL + TimescaleDB (database)
- Starts Redis (queue & cache) - optional since v0.5.0
- Runs database migrations
- Starts backend API & worker
- Starts frontend dashboard
Required Configuration
Edit your .env file and set these variables:
| Variable | Description |
|---|---|
| DB_PASSWORD | PostgreSQL database password |
| REDIS_PASSWORD | Redis password (optional - Redis not required since v0.5.0) |
| API_KEY_SECRET | Encryption key (32+ characters). Generate with: openssl rand -base64 32 |
| PUBLIC_API_URL | Required for remote access. Set to http://YOUR_SERVER_IP:8080 if accessing from another machine |
Accessing from another machine? You must set PUBLIC_API_URL to your server's IP address (e.g., http://192.168.1.100:8080). Without this, the frontend will try to reach localhost:8080 which won't work remotely.
Database migrations run automatically on first start.
Pre-built images are available from:
- Docker Hub:
logtide/backend,logtide/frontend - GitHub:
ghcr.io/logtide-dev/logtide-backend
Pin versions in production: LOGTIDE_BACKEND_IMAGE=logtide/backend:0.6.1
Troubleshooting
This is the most common issue. If you see "Failed to fetch", "Network Error", or CORS errors in the browser console, the frontend cannot reach the backend API.
Symptoms:
- • Login page shows "Failed to fetch" or "Network Error"
- • Browser console shows
CORSerrors or requests tolocalhost:8080 - • Firefox shows "TypeError: NetworkError when attempting to fetch resource"
Cause:
You're accessing LogTide from a different machine than where it's running. The frontend defaults to localhost:8080
which only works when your browser is on the same machine as Docker.
Solution:
Set PUBLIC_API_URL in your .env file to your server's IP:
# Replace with your server's actual IP address
PUBLIC_API_URL=http://192.168.1.100:8080 Then restart the frontend:
docker compose restart frontend Verify the backend is running:
Before blaming the frontend, confirm the API is accessible:
# From your local machine (replace IP with your server's IP)
curl http://192.168.1.100:8080/health
# Expected response:
# {"status":"ok","timestamp":"...","version":"0.4.2"}
If this fails, the backend isn't running correctly — check the logs with docker compose logs backend.
Containers Not Starting / Unhealthy
Check container logs to identify the issue:
# Check all container status
docker compose ps
# View logs for a specific service
docker compose logs backend
docker compose logs postgres
docker compose logs redis Backend Configuration Errors
If the backend container keeps restarting or fails health checks, check the logs for configuration errors:
docker compose logs backend | head -50 Common issues:
- API_KEY_SECRET too short: Must be at least 32 characters. Generate with:
openssl rand -base64 32 - Empty DB_PASSWORD or REDIS_PASSWORD: These must be set in your
.envfile - Invalid DATABASE_URL: Check that DB_USER, DB_PASSWORD, and DB_NAME are all set correctly
Fluent Bit Volume Mount Errors
If you see errors about mounting files when using --profile logging,
you need to download the Fluent Bit configuration files first:
# Download all required Fluent Bit config files
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/fluent-bit.conf
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/parsers.conf
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/extract_container_id.lua
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/map_syslog_level.lua
curl -O https://raw.githubusercontent.com/logtide-dev/logtide/main/docker/wrap_logs.lua
# Now start with logging profile
docker compose --profile logging up -d
These files must be in the same directory as your docker-compose.yml.
First Steps
1. Create Your Organization
After logging in, create your first organization to get started. Organizations are top-level containers for your projects.
2. Create a Project
Each organization can have multiple projects (e.g., "production", "staging"). Projects isolate logs and have their own API keys.
3. Generate an API Key
In your project settings, create an API key to start sending logs. Save it securely - it's shown only once!
4. Send Your First Log
Choose your preferred method to start sending logs to LogTide: