Commit Graph

330 Commits

Author SHA1 Message Date
mirsal 7ae5071cef Merge pull request 'Make the displayed SSH username configurable' (#13) from mirsal/capsul-flask:ssh-username into yolocolo
continuous-integration/drone/push Build is passing Details
Reviewed-on: #12
2021-08-10 12:00:35 +02:00
mirsal d4a9f2f40a Make the displayed SSH username configurable
continuous-integration/drone/pr Build is failing Details
This patch allows the SSH username displayed in templates to be
configured through the SSH_USERNAME environment variable.
2021-08-10 00:30:45 +00:00
mirsal 8634cda388 templates: Display IPv6 addresses on the capsul detail page
continuous-integration/drone/pr Build is failing Details
2021-08-04 19:53:06 +00:00
mirsal d238bc9551 cosmetics: Remove trailing whitespace
continuous-integration/drone/pr Build is failing Details
2021-08-04 15:35:41 +00:00
mirsal 17c915c1bf Support dualstack ipv6 in the console controller
This commit updates the console controller logic and
a few bits in the model in order to support multiple
address families (ipv4 and ipv6)
2021-08-04 15:35:41 +00:00
mirsal 8a6d558402 Retrieve IPv6 addresses from VMs
This commit allows the model to fetch IPv6 addresses from running VMs
and populate VirtualMachine objects with the value if it was retrieved
successfully
2021-08-04 15:35:41 +00:00
3wc ff4e63339f Merge branch 'master' into yolocolo
continuous-integration/drone/push Build is passing Details
2021-08-04 12:19:57 +02:00
mirsal d9f3e68278 shell_scripts: Fix reporting of VM IP addresses
continuous-integration/drone/pr Build is failing Details
The shell script which gets informations from libvirt incorrectly
matches virsh output lines which contain VMs' public IPv4 addresses.
It doesn't work when there are multiple address families which breaks
reporting of IPv4 address when a VM also has an IPv6 address and virsh
happen to output that one first.

This commit changes it to explicitely match the first ipv4 address instead.
2021-08-04 00:56:55 +00:00
3wc bcd1190f50 Fix API 🙈
continuous-integration/drone/push Build is passing Details
2021-07-29 11:36:58 +02:00
3wc 6963e22933 Merge branch 'publicapi' into yolocolo 2021-07-29 11:16:54 +02:00
3wc 816be36a52 Revert unthemed template changes, tweak theme 2021-07-29 11:11:51 +02:00
3wc d6f2f6d0bf Merge branch 'master' into yolocolo 2021-07-29 09:47:31 +02:00
3wc cffa40c0e3 Fix up API
continuous-integration/drone/push Build is passing Details
2021-07-23 23:28:06 +02:00
3wc 6dbae94bd6 Fix typo
continuous-integration/drone/push Build is passing Details
2021-07-23 18:08:05 +02:00
3wc 42edcd1c33 Updates for upstream IP handling 2021-07-23 18:07:37 +02:00
3wc b27d5b3c5b Add basic "create" API..
.. using server-side API tokens
2021-07-23 18:07:35 +02:00
3wordchant 72c04d8495 Docker image, & local development docker-compose.yml (#2)
continuous-integration/drone/push Build is passing Details
Adds:
- a Docker image, which can be used in both development and production
- a `docker-compose.yml` file for local development (could probably be adapted for production deployments)

Testing:
- `git checkout docker`
- `docker-compose up`
- pray 🙏
- go to http://localhost:5000

## App architecture

I added the ability to load secret config variables (`HUB_TOKEN`, `STRIPE_SECRET_KEY` etc) from files, to support [Docker Secrets](https://docs.docker.com/engine/swarm/secrets/) natively. The code should probably log an error if a specified `HUB_TOKEN_FILE` doesn't exist instead of failing silently..

## Docker architecture

This uses a multi-stage build to reduce the size of the final image -- having pipenv install to a predefined virtualenv, and then copying that over.

The compose file doesn't include a definition for a cron runner service, and I haven't tested running one yet. Here be dragons!

You can rebuild the image locally using `docker-compose build`, but this isn't required for changes to the app code, only if you edit the `Dockerfile`, or want to publish your image for use on a swarm server (in which case you will need to edit the image name to put in your own Docker hub credentials).

Currently, the image is rebuilt (should set up auto-tagging..) and published with every push to this 3wordchant/capsul-flask fork.

Reviewed-on: #2
Co-authored-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
Co-committed-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
2021-07-22 01:18:10 +02:00
3wordchant 5bb76173dd Add custom themes, THEME setting, basic "yolocolo" theme (#7)
Specify `THEME=yourtheme`, add some HTML files in `capsulflask/theme/yourtheme` 👌

We probably want to reduce copypasta in the current `yolocolo` theme by using template inheritance, at some point.

Reviewed-on: #7
Co-authored-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
Co-committed-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
2021-07-22 01:15:39 +02:00
3wc cfb323bf60 Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build is passing Details
2021-07-22 01:03:02 +02:00
3wc fb83f52162 Merge branch 'master' into yolocolo 2021-07-22 00:57:01 +02:00
forest 50ee1144f9 Merge remote-tracking branch 'threewordchant/master' 2021-07-21 16:46:50 -05:00
forest 08eb38dc57 correctly enforce affordable_vm_sizes post form submission 2021-07-21 16:45:53 -05:00
3wc 487a1ac0a3 Revert accidental change to main images 2021-07-21 23:30:14 +02:00
3wordchant f999adaf71 Add VMs to the database even with HUB_MODE=mock (#6)
https://todo.cyberia.club/~cyberia/services/83

Co-authored-by: 3wc <3wc.cyberia@doesthisthing.work>
Co-authored-by: forest <forest.n.johnson@gmail.com>
Reviewed-on: #6
Co-authored-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
Co-committed-by: 3wordchant <3wordchant@noreply.git.autonomic.zone>
2021-07-21 23:26:10 +02:00
3wc 71344fbf4d Merge branch 'yc-templates' into yolocolo 2021-07-21 22:49:17 +02:00
3wc 6f3ecf991d Custom theme fixes 2021-07-21 22:48:54 +02:00
3wc 40aa3bccd3 Load YOLOCOLO templates from a "theme" folder..
..configurable using the THEME env var.

Defaults to normal Capsul theme.
2021-07-21 22:24:25 +02:00
3wc bcc3f20b27 Tweak table style 2021-07-21 22:12:13 +02:00
3wc 8bd3971545 Improve form styling 2021-07-21 22:12:13 +02:00
3wc c639899cd0 Remove cash payment option 2021-07-21 22:12:13 +02:00
3wc a47c430855 Further colour tweak 2021-07-21 22:12:13 +02:00
3wc d5362897df Fix typo, tweak colours 2021-07-21 22:12:13 +02:00
3wc a52d183f2e More cheeky template changes 2021-07-21 22:12:13 +02:00
3wc 73042d1705 Disco updates for YOLOCOLO site 2021-07-21 22:12:13 +02:00
3wc 8f2becb9ee Fix SyntaxWarning on `is not ""`
`capsulflask/__init__.py:143: SyntaxWarning: "is not" with a literal. Did you mean "!="?`
2021-07-21 21:51:50 +02:00
3wc 8586b85095 Merge branch 'master' into yolocolo
continuous-integration/drone/push Build is failing Details
2021-07-21 20:38:36 +02:00
3wordchant f848eda931 Merge pull request 'Disable BTCPay in the interface, if BTCPAY_PRIVATE_KEY is un-set' (#3) from optional-btcpay into master
Reviewed-on: #3
2021-07-21 20:20:40 +02:00
3wordchant 46f49e8d8f Merge pull request 'Auto-generate the pricing table from the database' (#4) from generated-prices into master
Reviewed-on: #4
2021-07-21 19:32:09 +02:00
forest 36329796f0 define BTCPAY_ENABLED based on URL and btcpay key, pass it explicitly 2021-07-21 12:12:41 -05:00
forest 28271ee852 remove class="small" from pricing table cuz normal size fits fine 2021-07-21 11:53:44 -05:00
3wc 7923f3a99f Auto-generate the pricing table from the database 2021-07-21 12:19:28 +02:00
3wc b2b78e0015 Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build is passing Details
2021-07-21 11:43:17 +02:00
3wc d6f4be8197 Improve form styling 2021-07-21 11:43:04 +02:00
3wc 157e81e6e5 Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build is passing Details
2021-07-21 02:02:58 +02:00
3wc 97f9486ea3 Remove cash payment option 2021-07-21 02:02:21 +02:00
3wc 4b90a6c7ae Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build is passing Details
2021-07-21 01:56:45 +02:00
3wc adc3342a8c Further colour tweak 2021-07-21 01:56:36 +02:00
3wc f8bbdcc3c5 Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build was killed Details
2021-07-21 01:54:35 +02:00
3wc 1133caa8a4 Fix typo, tweak colours 2021-07-21 01:54:21 +02:00
3wc 1f384f34b5 Merge branch 'yc-templates' into yolocolo
continuous-integration/drone/push Build was killed Details
2021-07-21 01:44:52 +02:00