Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juls0730/flux
Flux is a lightweight self-hosted pseudo-paas for golang web apps.
https://github.com/juls0730/flux
bluegreen buildpacks deployment deployment-automation docker golang paas self-hosted zqdgr
Last synced: 7 days ago
JSON representation
Flux is a lightweight self-hosted pseudo-paas for golang web apps.
- Host: GitHub
- URL: https://github.com/juls0730/flux
- Owner: juls0730
- License: mit
- Created: 2024-12-03T07:34:02.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-12-14T09:30:08.000Z (about 2 months ago)
- Last Synced: 2024-12-14T09:30:49.542Z (about 2 months ago)
- Topics: bluegreen, buildpacks, deployment, deployment-automation, docker, golang, paas, self-hosted, zqdgr
- Language: Go
- Homepage:
- Size: 88.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flux
Flux is a lightweight self-hosted pseudo-PaaS for hosting Golang web apps with ease. Built on top of [Buildpacks](https://buildpacks.io/) and [Docker](https://docs.docker.com/get-docker/), Flux simplifies the deployment process with a focus on similicity, speed, and reliability.
## Features
- **Blue-Green Deployments**: Deploy new versions of your app without downtime
- **Simplify Deployment**: Flux takes care of the deployment process, so you can focus on writing your app
- **Flexible Configuration**: Easily configure your app with `flux.json`
- **Automatic Container Management**: Steamline your app with automatic container management## Dependencies
- [Go](https://golang.org/dl/)
- [ZQDGR](https://github.com/juls0730/zqdgr)
- [Buildpacks](https://buildpacks.io/) (daemon only)
- [Docker](https://docs.docker.com/get-docker/) (daemon only)## Intallation
### Daemon
To install and start the Flux daemon using ZQDGR, run the following command:
> [!IMPORTANT]
> CGO is required to build the daemon due to the use of [mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)#### Method 1: ZQDGR
```bash
go install github.com/juls0730/zqdgr@latestgit clone https://github.com/juls0730/flux.git
cd flux# either
zqdgr build:daemon
sudo ./fluxd# or
FLUXD_ROOT_DIR=$PWD/fluxdd zqdgr run:daemon
```#### Method 2: Docker
```bash
docker run -d --name fluxd --network host -v /var/run/docker.sock:/var/run/docker.sock -v fluxd-data:/var/fluxd -p 5647:5647 -p 7465:7465 zoeissleeping/fluxd:latest
```#### Method 3: Systemd
```bash
go install github.com/juls0730/zqdgr@latestgit clone https://github.com/juls0730/flux.git
cd fluxzqdgr build:daemon
sudo mv fluxd /usr/local/bin/cat <
```Available commands:
- `init`: Initialize a new project
- `deploy`: Deploy an application
- `start`: Start an application
- `stop`: Stop an application
- `delete`: Delete an application
- `list`: View application logs### Project Configuration (`flux.json`)
flux.json is the configuration file in the root of your proejct that defines deployment settings:
```json
{
"name": "my-app",
"url": "myapp.example.com",
"port": 8080,
"env_file": ".env",
"environment": ["DEBUG=true"]
}
```#### Configuration Options
- `name`: The name of the project
- `url`: Domain for the application
- `port`: Web server's listening port
- `env_file`: Path to environment variable file
- `environment`: Additional environment variables## Deployment Notes
- After deploying an app, point your domain to the Flux reverse proxy
- Ensure the Host header is sent with your requests## Contributing
Found a bug, or have something you think would make Flux better? Submit an issue or pull request.
## License
Flux is licensed with the MIT license