Skip to main content

fujin

[!IMPORTANT] This tool is currently contains minimal features and is a work-in-progress

fujin is a simple deployment tool that helps you get your project up and running on a VPS in minutes. It manages your app processes using systemd and runs your apps behind caddy.

Publish Package PyPI - Version PyPI - Python Version MIT License Status

Features

  • 🚀 One-command server bootstrap
  • 🔄 Rollback broken deployments
  • 🔐 Zero configuration SSL certificates
  • 🔁 Swappable proxy (caddy, nginx and dummy to disable proxy)
  • 🛠️ Secrets injection from password managers (Bitwarden, 1Password, etc.)
  • 📝 Easily customizable systemd and proxy configurations
  • 👨‍💻 Remote application management and log streaming
  • 🐍 Supports packaged python apps and self-contained binaries

For more details, check out the documentation📚.

Why?

I wanted kamal but without Docker, and I thought the idea was fun. At its core, this project automates versions of this tutorial. If you've been a Django beginner trying to get your app in production, you probably went through this.

I'm using caddy here by default instead of nginx because it's configurable via an API and it's is a no-brainer for SSL certificates. Systemd is the default on most Linux distributions and does a good enough job.

Fujin was initially planned to be a Python-only project, but the core concepts can be applied to any language that can produce a single distributable file (e.g., Go, Rust).

The goal is to automate deployment while leaving you in full control of your Linux box. It's not a CLI PaaS - it's simple and expects you to be able to SSH into your server and troubleshoot if necessary. For beginners, it makes the initial deployment easier while you get your hands dirty with Linux. If you need a never-break, worry-free, set-it-and-forget-it setup that auto-scales and does all the magic, fujin probably isn't for you.

Inspiration and alternatives

Fujin draws inspiration from the following tools for their developer experience. These are better alternatives if you need a more robust, set-and-forget solution

  • fly.io
  • kamal (you probably can't just forget this one)

License

fujin is distributed under the terms of the MIT license.

Metadata

Release files for fujin-cli 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fujin-cli 0.9.1
File Size Uploaded
fujin_cli-0.9.1.tar.gz 128.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fujin-cli 0.9.1
File Interpreter ABI Platform
fujin_cli-0.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 162.8 kB

Release files / fujin_cli-0.9.1.tar.gz

Download URL fujin_cli-0.9.1.tar.gz
Size 128.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e29d7bcb3a145269b1a54ee685fc0d04806d1a91e469f0a4bc5bdef6b1fff328
BLAKE2b-256 checksum
How to use checksums
fc3ce09f143cb07413d366abedfb5f5763d5c018d57d8ddaa29d0eeb1fcc77cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 23, 2024.

Transparency log

Release files / fujin_cli-0.9.1-py3-none-any.whl

Download URL fujin_cli-0.9.1-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
85239109086a875f17f52a816b995e97200674a2124daf41d2482e87f6d32e9b
BLAKE2b-256 checksum
How to use checksums
31e75c58d0dda1e4e4947240909e8b352360215c4d97594298456700382c28cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 23, 2024.

Transparency log

Release history Release notifications | RSS feed

0.27.1

2 release files

0.27.0

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.2

2 release files

0.22.1

2 release files

0.22.0

2 release files

0.21.4

2 release files

0.21.3

2 release files

0.20.1

2 release files

0.20.0

2 release files

0.19.5

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.2

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.2

2 release files

0.17.1

2 release files

0.16.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.10.0

2 release files

This release

0.9.1 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page