Deployment engine for React SPA frontends — Docker + GHCR + Kubernetes
Project description
frontblok-deploy
Deployment engine for React SPA frontends. Extracts all reusable deployment infrastructure into one Python package.
One package. One pattern. Every frontend.
What it owns
- Dockerfile — Multi-stage node:20-alpine → nginx:1.25-alpine build
- nginx.conf — Security-hardened config with parameterized CSP
- k8s/deployment.yaml — Full Kubernetes manifest with placeholder replacement
- Deploy engine — The 10-step chain: env → validate → generate files → git sha → docker build → push → namespace → secret → apply → rollout
What each app provides
Each frontend repo's deploy.py is pure config — declaring what makes THIS app different:
#!/usr/bin/env python3
from frontblok_deploy import FrontendDeployer
FrontendDeployer(
vite_args=[
"VITE_DATABASE_API_URL",
"VITE_BUSINESS_LOGIC_API_URL",
"VITE_GOOGLE_CLIENT_ID",
],
required_vars=[
"VITE_DATABASE_API_URL",
"VITE_GOOGLE_CLIENT_ID",
],
csp_sources={
"script_src": "https://js.stripe.com https://accounts.google.com https://apis.google.com https://cdn.jsdelivr.net",
"style_src": "https://fonts.googleapis.com https://accounts.google.com https://cdn.jsdelivr.net",
"font_src": "https://fonts.gstatic.com https://fonts.googleapis.com",
"frame_src": "https://js.stripe.com https://hooks.stripe.com https://accounts.google.com",
},
).deploy()
That's it. No Dockerfile, no nginx.conf, no K8s manifest needed in the repo. The package generates them at deploy time.
Install
pip install frontblok-deploy
# or for development
pip install -e /path/to/frontblok-deploy
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file frontblok_deploy-0.4.0.tar.gz.
File metadata
- Download URL: frontblok_deploy-0.4.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e248f6310168bcb82d57fce6dae9ad4e3fbf226220236a5e868a8f375cfc0c90
|
|
| MD5 |
1af8f8627636ca30d86b031a65566a7c
|
|
| BLAKE2b-256 |
1fb59e563014d1ecc3f4d51f6dfda49314977219c1a481d31f96872eb174d843
|
File details
Details for the file frontblok_deploy-0.4.0-py3-none-any.whl.
File metadata
- Download URL: frontblok_deploy-0.4.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b784f2dab7be43df21a0605f2047be9bf2ffd4583cb73f0cde1953536a29bb44
|
|
| MD5 |
8b0783eba59a3a8aae9e42544fe7944a
|
|
| BLAKE2b-256 |
42c07ff9a4420c4da7852408de8869f8913ac71864afb4a50d04eda053365638
|