Total SSL Certificates: 21 active domains (Let's Encrypt through NPM)
Status: All configured and active
Last Updated: 2025-11-09
| Property | Value |
|---|---|
| Domain | seller1.ru |
| Service | seller1-prod-web (Drupal/Varbase) |
| Stack | seller1-prod-stack |
| Type | Production website |
| Status | LIVE 24/7 🔴 CRITICAL |
| SSL | Valid (Let's Encrypt) |
| Forward Host | seller1-prod-web |
| Forward Port | 80 |
| HTTPS | Forced |
| HTTP/2 | Enabled |
| HSTS | Enabled |
| Block Exploits | Enabled |
Access: https://seller1.ru
Check Status:
curl -I https://seller1.ru
docker ps | grep seller1-prod-web
docker compose logs seller1-prod-web -f (from /opt/seller1-prod-stack)
| Property | Value |
|---|---|
| Domain | www.seller1.ru |
| Type | Redirect to seller1.ru |
| Status | LIVE 24/7 |
| SSL | Valid (Let's Encrypt) |
| HTTPS | Forced |
Access: https://www.seller1.ru (redirects to seller1.ru)
| Property | Value |
|---|---|
| Domain | pro.seller1.ru |
| Service | seller1-prod backend (N8N workflows) |
| Stack | seller1-prod-stack |
| Type | Backend/API service |
| Status | LIVE 24/7 🔴 CRITICAL |
| SSL | Valid (Let's Encrypt) |
| Forward Host | seller1-prod-n8n |
| Forward Port | 5678 |
| HTTPS | Forced |
Access: https://pro.seller1.ru
Check Status:
curl -I https://pro.seller1.ru
docker ps | grep seller1-prod-n8n
| Property | Value |
|---|---|
| Domain | auth.seller1.ru |
| Service | Drupal Simple OAuth |
| Type | Authentication endpoint |
| Status | Not yet configured with SSL |
| Purpose | OAuth provider for seller1.ru |
Note: Service is running but not yet accessible via https://auth.seller1.ru
| Property | Value |
|---|---|
| Domain | home.0kt.ru |
| Service | Homarr Dashboard |
| Container | pro-0kt-homarr |
| Port | 7575 |
| Purpose | Entry point, unified dashboard |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://home.0kt.ru
| Property | Value |
|---|---|
| Domain | git.0kt.ru |
| Service | Gitea |
| Container | pro-0kt-gitea |
| Port | 3000 (HTTP), 2222 (SSH) |
| Purpose | Git repository hosting |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://git.0kt.ru
| Property | Value |
|---|---|
| Domain | n8n.0kt.ru |
| Service | N8N Workflows (utilities) |
| Container | pro-0kt-n8n |
| Port | 5678 |
| Purpose | Workflow automation platform |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://n8n.0kt.ru
| Property | Value |
|---|---|
| Domain | jupyter.0kt.ru |
| Service | Jupyter Notebooks |
| Container | pro-0kt-jupyter |
| Port | 8888 |
| Purpose | Data analysis, Python notebooks |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://jupyter.0kt.ru
| Property | Value |
|---|---|
| Domain | mailhog.0kt.ru |
| Service | Mailhog |
| Container | pro-0kt-mailhog |
| Port | 8025 (UI), 1025 (SMTP) |
| Purpose | Email testing and debugging |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://mailhog.0kt.ru
| Property | Value |
|---|---|
| Domain | pgadmin.0kt.ru |
| Service | PgAdmin |
| Container | pro-0kt-pgadmin |
| Port | 5050 |
| Purpose | PostgreSQL database management |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://pgadmin.0kt.ru
| Property | Value |
|---|---|
| Domain | uptime.0kt.ru |
| Service | Uptime Kuma |
| Container | pro-0kt-uptime |
| Port | 3001 |
| Purpose | Status monitoring and uptime tracking |
| Auth | Authelia OAuth |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://uptime.0kt.ru
| Property | Value |
|---|---|
| Domain | portainer.0kt.ru |
| Service | Portainer |
| Container | pro-0kt-portainer |
| Port | 9002 |
| Purpose | Docker UI management |
| Auth | Authelia OAuth |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: http://localhost:9002 (internal only)
| Property | Value |
|---|---|
| Domain | db.0kt.ru |
| Service | PgAdmin alternative domain |
| SSL | Not yet configured |
| Status | Use pgadmin.0kt.ru instead |
Current Access: Use https://pgadmin.0kt.ru
| Property | Value |
|---|---|
| Domain | adminer.0kt.ru |
| Service | Adminer (database UI) |
| Container | pro-0kt-adminer |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: Internal only
| Property | Value |
|---|---|
| Domain | minio.0kt.ru |
| Service | MinIO Console |
| Container | pro-0kt-minio-console |
| Port | 9001 |
| Purpose | S3 storage management |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: http://localhost:9001 (internal only)
| Property | Value |
|---|---|
| Domain | s3.0kt.ru |
| Service | MinIO S3 API |
| Container | pro-0kt-minio |
| Port | 9000 |
| Purpose | S3-compatible object storage API |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: http://localhost:9000 (internal only)
| Property | Value |
|---|---|
| Domain | seller1.dev.0kt.ru |
| Service | Seller1 Development |
| Stack | seller1-dev-stack |
| Container | seller1-dev-web |
| Type | Development environment |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: Internal only
| Property | Value |
|---|---|
| Domain | n8n-seller1.dev.0kt.ru |
| Service | Seller1 N8N Dev |
| Stack | seller1-dev-stack |
| Container | seller1-dev-n8n |
| Type | Development workflows |
| SSL | Not yet configured |
| Status | Service running, no SSL |
Current Access: Internal only
| Property | Value |
|---|---|
| Domain | myshop.0kt.ru |
| Service | MyShop Drupal Commerce |
| Stack | myshop-stack |
| Container | myshop-web |
| Port | 80 |
| Purpose | Drupal Commerce demo |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://myshop.0kt.ru
| Property | Value |
|---|---|
| Domain | commerce.0kt.ru |
| Service | Commerce Kickstart |
| Stack | commerce-stack |
| Container | commerce-web |
| Port | 80 |
| Purpose | Commerce demo |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://commerce.0kt.ru
| Property | Value |
|---|---|
| Domain | varbase.0kt.ru |
| Service | Varbase Demo |
| Stack | varbase-stack |
| Container | varbase-web |
| Port | 80 |
| Purpose | Varbase distribution demo |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://varbase.0kt.ru
| Property | Value |
|---|---|
| Domain | py.dev.0kt.ru |
| Service | Python Development |
| Stack | python-stack |
| Container | python-dev |
| Port | 5000 |
| Purpose | Python Flask dev environment |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://py.dev.0kt.ru
| Property | Value |
|---|---|
| Domain | py.tst.0kt.ru |
| Service | Python Testing |
| Stack | python-stack |
| Container | python-tst |
| Port | 5000 |
| Purpose | Python Flask testing environment |
| SSL | Valid (Let's Encrypt) |
| Status | Active |
Access: https://py.tst.0kt.ru
✅ With SSL certificates:
1. seller1.ru
2. www.seller1.ru
3. pro.seller1.ru
4. home.0kt.ru
5. git.0kt.ru
6. n8n.0kt.ru
7. jupyter.0kt.ru
8. mailhog.0kt.ru
9. pgadmin.0kt.ru
10. uptime.0kt.ru
11. myshop.0kt.ru
12. commerce.0kt.ru
13. varbase.0kt.ru
14. py.dev.0kt.ru
15. py.tst.0kt.ru
⏳ Service running, no SSL yet:
1. auth.seller1.ru
2. seller1.dev.0kt.ru
3. n8n-seller1.dev.0kt.ru
❌ Service running, no SSL:
1. portainer.0kt.ru
2. db.0kt.ru
3. minio.0kt.ru
4. s3.0kt.ru
| Property | Value |
|---|---|
| Provider | Let's Encrypt |
| Manager | Nginx Proxy Manager (NPM) |
| Admin Panel | http://localhost:81 (SSH tunnel) |
| admin@0kt.ru | |
| Auto-Renewal | Enabled (30 days before expiration) |
| Certificate Format | PEM |
/mnt/data/nginx/letsencrypt/live/
├── seller1.ru/
│ ├── cert.pem
│ ├── chain.pem
│ ├── fullchain.pem
│ └── privkey.pem
├── home.0kt.ru/
├── git.0kt.ru/
└── ... (one per domain)
# Check specific certificate
openssl x509 -in /mnt/data/nginx/letsencrypt/live/seller1.ru/cert.pem -noout -dates
# Check all certificates
for domain in /mnt/data/nginx/letsencrypt/live/*/; do
echo "Domain: $(basename $domain)"
openssl x509 -in "$domain/cert.pem" -noout -dates
done
# From container
docker exec pro-0kt-nginx certbot certificates
Automatic renewal runs via NPM every 30 days before expiration.
Manual renewal:
1. Login to NPM Admin: http://localhost:81 (via SSH tunnel)
2. Edit proxy host
3. SSL section > Request New SSL Certificate
4. Force SSL: Yes, HTTP/2: Yes
Via command line:
docker compose -f /opt/pro-0kt-stack/docker-compose.yml restart pro-0kt-nginx
Be aware of Let's Encrypt rate limits:
- 50 certificates per registered domain per week
- 5 duplicate certificates per week
All domains should point to: 45.144.177.147
Verify DNS:
nslookup seller1.ru
dig seller1.ru @8.8.8.8
From container:
docker exec <container> nslookup seller1.ru
Configure DNS:
- Create A record: newdomain.tld → 45.144.177.147
- Wait for DNS propagation (10-60 minutes)
Add to NPM:
- Login to NPM Admin: http://localhost:81
- Proxy Hosts > New Proxy Host
- Domain: newdomain.tld
- Forward Host: container-name
- Forward Port: service-port
- Enable: Websockets Support, Block Common Exploits
Request SSL:
- Edit proxy host
- SSL > Request New SSL Certificate
- Force SSL: Yes
- HTTP/2 Support: Yes
Test:
- https://newdomain.tld
- Check: curl -I https://newdomain.tld
# Check DNS
nslookup domain.tld
# Should show: 45.144.177.147
# Check if hit rate limit
# Wait 1 week if limit exceeded
# Check NPM logs
docker logs pro-0kt-nginx | grep domain.tld
# Check ports open
sudo ufw status | grep 80
sudo ufw status | grep 443
# Check backend container
docker ps | grep <container>
# Check container logs
docker logs <container> --tail 50
# Verify network connectivity
docker network inspect <network-name> | grep <container>
# Reconnect to network if needed
docker network connect <network> <container>
# Reload NPM
docker exec pro-0kt-nginx nginx -s reload
# Check DNS propagation
nslookup domain.tld
# Should return: 45.144.177.147
# Try different DNS servers
nslookup domain.tld 8.8.8.8
nslookup domain.tld 1.1.1.1
# Clear browser cache
# Try incognito/private mode
# Wait for propagation (up to 60 minutes)
# Check certificate status
docker exec pro-0kt-nginx certbot certificates
# Check NPM health
docker logs pro-0kt-nginx --tail 100
# Check ports
sudo netstat -tulpn | grep 443
# Restart NPM
docker compose -f /opt/pro-0kt-stack/docker-compose.yml restart pro-0kt-nginx
| Category | Count | Examples |
|---|---|---|
| Production | 4 | seller1.ru, www.seller1.ru, pro.seller1.ru, auth.seller1.ru |
| Infrastructure | 7 | home.0kt.ru, git.0kt.ru, n8n.0kt.ru, jupyter.0kt.ru, mailhog.0kt.ru, pgadmin.0kt.ru, uptime.0kt.ru |
| Development | 5 | seller1.dev.0kt.ru, n8n-seller1.dev.0kt.ru, myshop.0kt.ru, commerce.0kt.ru, varbase.0kt.ru, py.dev.0kt.ru, py.tst.0kt.ru |
| Admin | 4 | portainer.0kt.ru, db.0kt.ru, minio.0kt.ru, s3.0kt.ru, npm.0kt.ru, auth.0kt.ru |
| Status | Count |
|---|---|
| Configured with SSL | 15 |
| Running, no SSL | 8 |
| Total | 23 |
$WORKSPACE/infra/@infra-dev-prod-rf/design/ARCHITECTURE.md$WORKSPACE/infra/@infra-dev-prod-rf/management/README.md$WORKSPACE/infra/@infra-dev-prod-rf/infrastructure/SERVER.md$WORKSPACE/infra/@infra-dev-prod-rf/infrastructure/STACKS.mdDocument Version: 1.0.0
Last Updated: 2025-11-09
SSL Certificates Valid Until: January 2026