janraasch/dsd-vps-kamal

janraasch/dsd-vps-kamal

Projects

Title: GitHub - janraasch/dsd-vps-kamal: A Django Simple Deploy plugin for configuring & automating deployments of your Django project to any VPS using Kamal.

URL Source: https://github.com/janraasch/dsd-vps-kamal

Markdown Content:

GitHub - janraasch/dsd-vps-kamal: A Django Simple Deploy plugin for configuring & automating deployments of your Django project to any VPS using Kamal. · GitHub

Skip to content

Navigation Menu

Toggle navigation

Sign in

Appearance settings

View all features

View all solutions

View all resources

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback

We read every piece of feedback, and take your input very seriously.

  • [x] Include my email address so I can be contacted

Cancel Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel Create saved search

Sign in

Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert

{{ message }}

janraasch/dsd-vps-kamalPublic template

Additional navigation options

janraasch/dsd-vps-kamal

main

1Branch3Tags

Go to file

Code

Open more actions menu

Folders and files

| Name | Name | Last commit message | Last commit date | | --- | --- | --- | --- | | ## Latest commit janraasch Bump version success May 13, 2026 6e2452c·May 13, 2026 ## History 14 Commits Open commit details 14 Commits | | .claude | .claude | Document release flow in CLAUDE.md | May 13, 2026 | | .github | .github | Bump dependabot/fetch-metadata from 2 to 3 (#7) | Apr 9, 2026 | | dsd_vps_kamal | dsd_vps_kamal | Usedjango-prodserver(#9) | May 13, 2026 | | tests | tests | Usedjango-prodserver(#9) | May 13, 2026 | | .gitignore | .gitignore | Initial commit | Mar 27, 2026 | | LICENSE | LICENSE | Initial commit | Mar 27, 2026 | | MANIFEST.in | MANIFEST.in | Initial commit | Mar 27, 2026 | | README.md | README.md | Initial commit | Mar 27, 2026 | | justfile | justfile | Initial commit | Mar 27, 2026 | | pyproject.toml | pyproject.toml | Bump version | May 13, 2026 | | uv.lock | uv.lock | Bump version | May 13, 2026 | | View all files |

Repository files navigation

dsd-vps-kamal

A django-simple-deploy plugin for deploying Django projects to any VPS using Kamal.

Hetzner, DigitalOcean, Linode et al. — if you can SSH into it, you can deploy to it.

Current Status 🙋‍♂️

This plugin is in a pre-1.0 development phase. It's ready for use, but the API is not yet stable. See the roadmap to v1 for what's planned.

Installation 💻

undefinedshell pip install dsd-vps-kamal undefined

Then add django_simple_deploy to INSTALLED_APPS in your settings.py:

undefinedpython INSTALLED_APPS = [ # ... "django_simple_deploy", ] undefined

Usage 🧑‍🔧

Configuration-only mode

By default, the plugin configures your project for deployment but doesn't actually deploy. You review the changes, commit, and deploy yourself:

undefinedshell python manage.py deploy --ip-address undefined

This generates all the files Kamal needs — deploy.yml, Dockerfile, secrets, and production settings. Review the changes, then:

undefinedshell git add . git commit -m "Configured for deployment via Kamal." rvx kamal setup # see »Installing Kamal« below for more details undefined

Fully automated deployment ⚡

Pass --automate-all and the plugin handles everything — configuration, committing, and running kamal setup for you:

undefinedshell python manage.py deploy --automate-all --ip-address undefined

This requires a few things to be in place:

  • VPS provisioning is out of scope (for now) — bring your own server; this command does not create or configure the VPS itself yet.
  • SSH root accessssh root@<your-vps-ip> must work without a password prompt
  • Docker running locally — the Docker daemon needs to be active on your machine. We recommend Docker Desktop.
  • Kamal installed locally — see Installing Kamal below

Options

--ip-address (required)

The IPv4 address of your VPS. This is how the plugin knows where to deploy.

--host (required for HTTPS, optional otherwise)

A domain name for Kamal's proxy routing, e.g. myapp.example.com. If you've pointed a DNS record at your VPS, pass it here:

undefinedshell python manage.py deploy --ip-address --host myapp.example.com undefined

If omitted, your app is served over HTTP on the IP address (no automatic TLS certificate).

--sqlite (optional)

Use SQLite instead of PostgreSQL:

undefinedshell python manage.py deploy --ip-address --sqlite undefined

Uses dj-lite for production-ready SQLite by default.

Installing Kamal 🔧

Kamal is a Ruby gem. If you already have Ruby set up:

undefinedshell gem install kamal undefined

If you'd rather not manage a Ruby environment, we recommend rv:

undefinedshell brew install rv # see https://github.com/spinel-coop/rv#installation for other OSes rv tool install kamal undefined

Then use rvx kamal wherever you'd normally run kamal. The plugin detects rv automatically when using --automate-all.

Development 🛠️

Install Just to run the development commands:

undefinedshell just dev-setup # clones core + installs everything in editable mode undefined

```

Other just recipes for development:

lint             # Check linting (no fixes)
format           # Format code
test-unit        # Run unit tests
test-integration # Run integration tests

```

All available just commands:

just --list

Special Thanks ❤️

  • Eric Matthes for django-simple-deploy — making Django deployment accessible to everyone
  • David Heinemeier Hansson for Kamal — zero-downtime deployments to any VPS without the complexity
  • Jeff Triplett for django-startproject — a fantastic project template and inspiration
  • Adam Hill for dj-lite — production-ready SQLite for Django
  • The Djangonauts program &Team Venus 🪐 - Session 6

License 📄

BSD 3-Clause © Jan Raasch

About

A Django Simple Deploy plugin for configuring & automating deployments of your Django project to any VPS using Kamal.

Topics

djangodeploymentvpskamal

Resources

Readme

License

BSD-3-Clause license

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

12 stars

Watchers

1 watching

Forks

0 forks

Report repository

Releases 3

Use django-prodserver Latest May 13, 2026

+ 2 releases

Contributors 2

Languages

Footer

© 2026 GitHub,Inc.

Footer navigation

You can’t perform that action at this time.