A magical CLI/TUI for interacting with Dokploy.
█
████
███████ █
█████████████████████████ ████████ ████████
███████████████████████████████ ██████████████████
████ █████████ ██████████████
████ ███ █████████ ████
███ ███ ██████████ █████
███ ████████████████████████
████████████████ █████████████████
██████████████████████ ███████
████ ██████████ ██████████ ██████
██████ ███████████████████████████████ ████████
████████ ████████████████████ ████████
█ █████████ ████████ ███
█████ █████████ ████████ ██████
████████ ███████████ ███████████ █████████
████ ██████ ████████████████████████████████ ███████ ████
████ ███████ ████████████████████ ███████ ████
█████ ████████ ████████ ██████
███████ ████████ █████████ ███████
█████████ ████████████ ███████████ ██████████
████ ██████ ████████████████████████████ ███████ ████
████ ██████ ██████████████ ██████ ████
█████ ███████ ████████ █████
█████ █████████ █████████ █████
██████ ████████████████████████████████ ██████
██████ ██████████████████████ ██████
███████ ██████
████████ ████████
███████████ ██████████
██████████████████████████
████████████
pip install git+https://github.com/jonykalavera/dokli.git
Tested with Dokploy versions:
- 0.6.1
Create a dokly.yaml file in the current directory. Example:
connections:
- name: test-env
url: https://dokploy.examle.com
api_key: ****************************************
notes: "Our test environment. Handle with care!"
- Supports all API entities actions/verbs.
- magical JSON parameters
%json:{"projectId": "daspdoada798sda"}
- magical file parameters
%file:foo.redis.json
- output formats:
- yaml
- json
- python
- table (experimental)
$ dokly
Usage: python -m dokli [OPTIONS] COMMAND [ARGS]...
Magical Dokploy CLI/TUI.
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy │
│ it or customize the installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ api API. │
│ tui Text User Interface. │
╰──────────────────────────────────────────────────────────────────────────────╯
$ dokly api test-env project all
- adminId: ysHDHlhX4a3zOG2fLsske
applications: []
compose: []
createdAt: '2024-08-05T02:45:38.168Z'
description: null
mariadb: []
mongo: []
mysql: []
name: Dokli
postgres: []
projectId: zuanf1SWHMFO11y6xqpRR
redis: []
$ dokli api test-env project create -p '%json:{"name": "Dokli"}' --format table
API Response
┏━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Key ┃ Value ┃
┡━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ projectId │ zuanf1SWHMFO11y6xqpRR
│ name │ Dokli │
│ description │ None │
│ createdAt │ 2024-08-05T02:45:38.168Z │
│ adminId │ ysHDHlhX4a3zOG2fLsske │
└─────────────┴──────────────────────────┘
$ dokli api test-env project one --format json -p project_id=zuanf1SWHMFO11y6xqpRR
{"projectId": "zuanf1SWHMFO11y6xqpRR", "name": "Dokli", "description": null,
"createdAt": "2024-08-05T02:45:38.168Z", "adminId": "ysHDHlhX4a3zOG2fLsske",
"applications": [], "mariadb": [], "mongo": [], "mysql": [], "postgres": [],
"redis": [], "compose": []}
- Configuration stores API key in plain-text.
- No way to hide secrets. Passwords are printed in plain-text.
http://www.youtube.com/watch?v=IAnHfFV9_jU
The CLI is designed to keep up with any changes in the API. The client is autogenerated and integrated through config.
I did this because I want to do some test automation and the official CLI seems incomplete at the moment. The TUI is because I am into tools like yazi, lazygit, k9s, dry, etc. I like to keep my terminal open at all times $
.
Also, it seemed to me like something cool to do this weekend. I learned a bunch about texual, typer and Dokploy.
I'm Mexican, I prefer tacos. But ☕ is also nice. You can use the 🫶 sponsor button on the top.
Also pretty please and thanks in advance 🥺.