mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 21:27:23 +01:00
61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# Habitica in Kubernetes
|
|
This is a set of sample Kubernetes configuration files to launch Habitica under AWS, both as a single-node web frontend as well as a multi-node web frontend.
|
|
|
|
## Prerequisites
|
|
* An AWS account.
|
|
* A working Kubernetes installation.
|
|
* A basic understanding of how to use Kubernetes. https://kubernetes.io/
|
|
* A persistent volume for MongoDB data.
|
|
* Docker images of Habitica.
|
|
+ You can use your own, or use the one included in the YAML files.
|
|
+ If you use your own, you'll need a fork of the Habitica GitHub repo and your own Docker Hub repo, both of which are free.
|
|
|
|
## Before you begin
|
|
1. Set up Kubernetes.
|
|
2. Create an EBS volume for MongoDB data.
|
|
+ Make a note of the name, you'll need it later.
|
|
|
|
## Starting MongoDB
|
|
1. Edit mongo.yaml
|
|
+ Find the volumeID line.
|
|
+ Change the volume to the one created in the section above.
|
|
2. Run the following commands:
|
|
+ `kubectl.sh create -f mongo.yaml`
|
|
+ `kubectl.sh create -f mongo-service.yaml`
|
|
3. Wait for the MongoDB pod to start up.
|
|
|
|
## Starting a Single Web Frontend
|
|
|
|
1. Run the following commands:
|
|
+ `kubectl.sh create -f habitica.yaml`
|
|
+ `kubectl.sh create -f habitica-service.yaml`
|
|
2. Wait for the frontend to start up.
|
|
|
|
## Starting Multi-node Web Frontend
|
|
1. Run the following commands :
|
|
+ `kubectl.sh create -f habitica-rc.yaml`
|
|
+ `kubectl.sh create -f habitica-service.yaml`
|
|
2. Wait for the frontend to start up.
|
|
|
|
## Accessing Your Habitica web interface
|
|
Using `kubectl describe svc habiticaweb` get the hostname generated for the Habitica service. Open a browser and go to http://hostname:3000 to access the web front-end for the installations above.
|
|
|
|
## Shutting down
|
|
Shutting down is basically done by reversing the steps above:
|
|
+ `kubectl.sh delete -f habitica-service.yaml`
|
|
+ `kubectl.sh delete -f habitica.yaml (or habitica-rc.yaml)`
|
|
+ `kubectl.sh delete -f mongo-service.yaml`
|
|
+ `kubectl.sh delete -f mongo.yaml`
|
|
|
|
You can also just shut down all of Kubernetes as well.
|
|
|
|
## Notes
|
|
+ MongoDB data will be persistent! If you need to start with a fresh database, you'll need to remove the volume and re-create it.
|
|
+ On AWS, you probably want to use at least t2.medium minion nodes for Kubernetes. The default t2.small is too small for more than two Habitica nodes.
|
|
|
|
## Future Plans
|
|
+ Multi-node MongoDB.
|
|
+ Monitoring
|
|
+ Instructions for a better hostname. The default generated ones stink.
|
|
+ More to come....
|