Access
Web interface: https://<SERVER_IP>
API endpoint: https://<SERVER_IP>:5004
Default admin credentials:
- Email:
[email protected] - Password:
1234
Change the admin credentials immediately after first login.
Self-Signed Certificate Notice
This installation uses a self-signed TLS certificate.
A browser SSL warning is expected.
For API calls using curl, you must ignore certificate validation:
curl -k https://<SERVER_IP>:5004
The -k flag tells curl to skip TLS certificate verification.
Example to obtain API token:
curl -k https://<SERVER_IP>:5004/api/v1/auth/login
-H "Content-Type: application/json"
-d '{"email":"[email protected]","password":"1234"}'
This returns a JSON response containing a token.
Example to obtain API token:
curl -k -i https://<SERVER_IP>:5004/api/v1/<VALID_ENDPOINT>
-H "Authorization: Bearer <TOKEN>"
For production environments, replace the self-signed certificate with a trusted SSL certificate (e.g., Let’s Encrypt).
Important Files & Directories
- Install directory:
/root/peppermint - Environment variables (DB credentials, secrets, BASE_URL):
/root/peppermint/.env - Docker Compose configuration:
/root/peppermint/docker-compose.yml - PostgreSQL persistent data (Docker volume):
/var/lib/docker/volumes/pgdata/_data - Nginx reverse proxy configs:
/etc/nginx/conf.d/peppermint-client.conf&/etc/nginx/conf.d/peppermint-api.conf - TLS certificates (self-signed or Let’s Encrypt):
/etc/nginx/ssl/
Enabling SSL with a Domain
1. Point your domain to the server IP.
2. Edit the /root/peppermint/.env file to set your domain name: BASE_URL=https://your.domain.com
3. Recreate the services:
cd /root/peppermint/
docker compose up -d
4. Edit Nginx configs and replace server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:
vim /etc/nginx/conf.d/peppermint-client.conf
vim /etc/nginx/conf.d/peppermint-api.conf
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/conf.d/peppermint-client.conf
vim /etc/nginx/conf.d/peppermint-api.conf
# 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