Skip to main content

Zingat Deployment Guide

Complete production deployment instructions for Zingat. This guide covers Docker deployment, systemd service setup, and production configuration.

Docker Deployment

Zingat includes a Dockerfile for containerized deployment.

Build Docker Image

Run Docker Container

Docker Compose

Create a docker-compose.yml file:
Run with Docker Compose:

Systemd Service

For Linux servers, create a systemd service file.

Create Service File

Create /etc/systemd/system/zingat.service:

Setup Steps

  1. Create user and directory:
  2. Copy binaries:
  3. Enable and start service:
  4. Check status:

Production Configuration

Environment Variables

Create a production .env file:

Database Configuration

SQLite Production Tips

  • Use absolute paths for database file
  • Ensure proper file permissions
  • Regular backups recommended

PostgreSQL Production Setup

For higher traffic, use PostgreSQL:
PostgreSQL configuration:
  • Enable connection pooling
  • Set appropriate memory settings
  • Configure backups

Security Hardening

File Permissions

Firewall Configuration

Reverse Proxy Setup

Nginx Configuration

Create /etc/nginx/sites-available/zingat:
Enable the site:

SSL with Let’s Encrypt

Monitoring and Logging

Log Management

Zingat outputs structured JSON logs. Use log rotation:
Create /etc/logrotate.d/zingat:

Health Checks

Monitor service health:

Performance Monitoring

Use tools like:
  • htop for system monitoring
  • nginx status for web server metrics
  • sqlite3 for database health

Backup Strategy

Database Backups

SQLite Backup

PostgreSQL Backup

Configuration Backups

Backup important files:
  • Service configuration
  • Environment files
  • SSL certificates

Scaling Considerations

Vertical Scaling

  • Increase server resources (CPU, RAM)
  • Use faster storage for database
  • Optimize database configuration

Horizontal Scaling

For very high traffic:
  • Use PostgreSQL instead of SQLite
  • Implement load balancing
  • Consider Redis for caching

Troubleshooting Production

Common Issues

  1. Port conflicts: Check if port 8000 is already in use
  2. Permission errors: Verify file ownership and permissions
  3. Database errors: Check database connection string
  4. Memory issues: Monitor system resources

Debug Mode

Enable debug logging temporarily:

Maintenance

Regular Updates

  • Keep Rust and dependencies updated
  • Monitor security advisories
  • Apply security patches promptly

Database Maintenance

This deployment guide provides a solid foundation for running Zingat in production environments with proper security, monitoring, and maintenance practices.