Portrait Michael Malura

DokiDoki

A self-developed container platform for automatic deployment of web applications. DokiDoki enables you to deploy Git repositories in just a few clicks and automatically update them via webhooks.

The platform uses systemd-nspawn for lightweight container isolation, automatically manages SSL certificates via Let's Encrypt, and routes traffic through Nginx. Git integration with SSH key management enables access to private repositories.

Features:

  • Automatic deployments via GitHub Webhook
  • Support for Python, PHP, Node.js, and static sites
  • Build processes for Node.js projects (npm install & build)
  • YAML-based configuration directly in the repository
  • Encrypted environment variables for sensitive data
  • Deployment history with logs
  • CLI tools for server administration

Example Configurations:

Static site with Node.js build (React/Vite):

runtime:
  type: static
  subtype: node

app:
  serve_directory: dist

Python Flask application:

runtime:
  type: python
  version: "3.11"

app:
  start_command: "gunicorn --bind 0.0.0.0:${PORT} wsgi:app"
  working_directory: "."
  env_file: ".env"

Static HTML site:

runtime:
  type: static

app:
  serve_directory: "."

The platform currently hosts all my web projects and enables fast iteration through automatic deployments directly from GitHub.