Access
- Open in your browser:
https://<SERVER_IP> - Accept SSL warning (self-signed certificate).
- Create a new account via the web interface.
- The first account created becomes the admin user.
Configuration
Environment variables are stored in: /root/karakeep/.env
Edit .env or docker-compose.yml to apply changes:
docker compose -f /root/karakeep/docker-compose.yml up -d
Disable Public Signups (Optional)
Edit .env and modify DISABLE_SIGNUPS:
DISABLE_SIGNUPS=true
Apply changes:
docker compose -f /root/karakeep/docker-compose.yml up -d
Enable AI Features (Optional)
Edit /root/karakeep/docker-compose.yml under the web service:
environment:
# OPENAI_API_KEY: "your_openai_api_key_here"
Uncomment the line and insert your OpenAI API key:
environment:
OPENAI_API_KEY: "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
Apply changes:
docker compose -f /root/karakeep/docker-compose.yml up -d
Important Files & Directories
- Application directory:
/root/karakeep - Docker Compose file:
/root/karakeep/docker-compose.yml - Environment file:
/root/karakeep/.env - KaraKeep data:
/var/lib/docker/volumes/karakeep_data/_data - Meilisearch data:
/var/lib/docker/volumes/karakeep_meilisearch/_data - Nginx configuration:
/etc/nginx/sites-available/karakeep - SSL certificates:
/etc/nginx/ssl/
Enabling SSL with a Domain (Optional)
1. Point your domain to the server IP.
2. Edit the /root/karakeep/docker-compose.yml file to set your domain name: NEXTAUTH_URL=https://your.domain.com
3. Recreate the services:
cd /root/karakeep/
docker compose up -d
4. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:
vim /etc/nginx/sites-available/karakeep
5. Install Certbot:
apt install -y certbot python3-certbot-nginx
6. Run the following command to generate a valid Let’s Encrypt certificate:
certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com
7. Replace SSL paths in Nginx config (TLS section):
vim /etc/nginx/sites-available/karakeep
# Before:
# ssl_certificate /etc/nginx/ssl/fullchain.pem;
# ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
# ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
8. Restart Nginx to apply the changes:
systemctl restart nginx
9. Open your browser and visit: https://yourdomain.com