0.0.970 cdbcd03

README.md RawHistoryFolder

Gordon is a tool written in Go that aims to simplify the deployment of your containerized web applications. It automates the process of integrating your locally built image into your self-hosted setup. Additionally, Gordon coordinates domain routing through Traefik, which needs to be pre-installed. This eliminates the need for manual configuration and streamlines the development process.

Key Features

  • Quick Deployment: Deploy container images effortlessly using the command gordon deploy <image:version> -p 8080:80 -t gordon.sld.tld
  • Self-Hosted: Operates within your existing self-hosted environment.
  • Web UI: Provides a simple web UI to manage your deployments, domains, exposed ports, and more.
  • Automated Routing: Collaborates with Traefik to automatically route your application to your desired domain or subdomain.
  • One binary: Gordon follows the Golang philosophy of keeping things simple, offering a single binary for all functionalities.
  • Minimal stack: Sqlite3 is used as in memory database (no ORM), the web UI is built using Go templates, HTMX and Tailwind CSS

Why ?

I found myself spending excessive time manually deploying my containerized applications using remote SSH. Being a lazy developer, I wanted a tool that would automate this process. However, I couldn't find one that met my requirements (dead simple), so I decided to make my own.

Development Status

🛠️ Note: This project is currently under heavy development. A 0.1 release with basic features will be available soon.

TODO for 0.1 release

  • Basic web UI for managing deployments
  • CRUD operations with the container engine
  • Improve authentication security
  • Interaction with the database
  • New version update mechanism (backup, rollback etc.)
  • Basic CLI to push images to the container engine

License

Gordon is licensed under the GPL-3.0 license. Please see the LICENSE file for more details.

source
1<h1 align="center">
2  <br>
3 <img src="https://github.com/bnema/gordon/blob/main/internal/webui/public/assets/imgs/gordon-mascot-mq-trsp.png?raw=true" alt="Gordon" width="192">
4  <br>
5  Gordon
6  <br>
7</h1>
8
9<h4 align="center">Minimalist self-hosted containerized app deployment tool.</h4>
10
11
12Gordon is a tool written in Go that aims to simplify the deployment of your containerized web applications. It automates the process of integrating your locally built image into your self-hosted setup. Additionally, Gordon coordinates domain routing through Traefik, which needs to be pre-installed. This eliminates the need for manual configuration and streamlines the development process.
13
14## **Key Features**
15
16- **Quick Deployment**: Deploy container images effortlessly using the command **`gordon deploy <image:version> -p 8080:80 -t gordon.sld.tld`**
17- **Self-Hosted**: Operates within your existing self-hosted environment.
18- **Web UI**: Provides a simple web UI to manage your deployments, domains, exposed ports, and more.
19- **Automated Routing**: Collaborates with Traefik to automatically route your application to your desired domain or subdomain.
20- **One binary**: Gordon follows the Golang philosophy of keeping things simple, offering a single binary for all functionalities.
21- **Minimal stack**: Sqlite3 is used as in memory database (no ORM), the web UI is built using Go templates, HTMX and Tailwind CSS
22
23## **Why ?**
24
25I found myself spending excessive time manually deploying my containerized applications using remote SSH. Being a lazy developer, I wanted a tool that would automate this process. However, I couldn't find one that met my requirements (dead simple), so I decided to make my own.
26
27## **Development Status**
28
29🛠️ **Note**: This project is currently under heavy development. A 0.1 release with basic features will be available soon.
30
31## **TODO for 0.1 release**
32
33- [x] Basic web UI for managing deployments
34- [x] CRUD operations with the container engine
35- [x] Improve authentication security
36- [x] Interaction with the database
37- [ ] New version update mechanism (backup, rollback etc.)
38- [ ] Basic CLI to push images to the container engine
39
40## **License**
41
42Gordon is licensed under the GPL-3.0 license. Please see the LICENSE file for more details.

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close