Skip to main content

Get your project up and running in a few minutes on your own vps.

Project description

fujin

PyPI - Version PyPI - Python Version MIT License Status

[!IMPORTANT] This package 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 a few minutes. It manages your app processes using systemd and runs your apps behind caddy. For Python projects, it expects your app to be a packaged Python application ideally with a CLI entry point defined. For other languages, you need to provide a self-contained single executable file with all necessary dependencies. The main job of fujin is to bootstrap your server (installing caddy, etc.), copy the files onto the server with a structure that supports rollback, and automatically generate configs for systemd and caddy that you can manually edit if needed.

Check out the documentation📚 for installation, features, and usage guides.

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 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). I wanted to recreate kamal's nice local-to-remote app management API, but I'm skipping Docker to keep things simple. I'm currently rocking SQLite in production for my side projects and ths setup is enough for my use case.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fujin_cli-0.6.0.tar.gz (177.1 kB view details)

Uploaded Source

Built Distribution

fujin_cli-0.6.0-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file fujin_cli-0.6.0.tar.gz.

File metadata

  • Download URL: fujin_cli-0.6.0.tar.gz
  • Upload date:
  • Size: 177.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fujin_cli-0.6.0.tar.gz
Algorithm Hash digest
SHA256 52a11ca9ad430bb98d912a6f6b571325d7408e8330da72e43c2f80ed0432ba01
MD5 4d240b9603299fbd7a3d6d6b956aa314
BLAKE2b-256 64ec0c5a77d8f69da0018ae11f772c22d78c0db9b66feef0b46e27a3de61afbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for fujin_cli-0.6.0.tar.gz:

Publisher: publish.yml on falcopackages/fujin

Attestations:

File details

Details for the file fujin_cli-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: fujin_cli-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fujin_cli-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3cd9ecd5cbd919c30c2c973ff0b7912a2f94161540049510992326b06328c1d
MD5 5a1feb337d7227360670cec91937bab1
BLAKE2b-256 ea6b2afc836f98035d861d857331f84c4cafa3e89fe95a13a7f75715cb384f86

See more details on using hashes here.

Provenance

The following attestation bundles were made for fujin_cli-0.6.0-py3-none-any.whl:

Publisher: publish.yml on falcopackages/fujin

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page