Karakeep

An app to save, organize, and manage your data and bookmarks.

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

Application Details