Folders and files Name Name Last commit message
Last commit date
parent directory
View all files
Running Application on GCP
Go to cloudflare and register new domain
Go to profile -> api tokens and create API token Zone:DNS:Edit
Store the token on safe place
Prepare ssh key (e.g. with PuttyGen)
Login to GCP console and create new VM instance
Go to SSH keys and add your key
Create Instance Template (Ubuntu)
europe-west1
Firewall
Management -> Startup script sudo ufw allow 22
Create Instance Group from the template (this will create an instance)
Go to Network - default and verify there is Firewall http/ https
if not, create it manually for http:80 and https:443
Copy instance external IP and connect via ssh (Putty) and key pair
In CloudFlare, create new DNS rule to point to your external IP
keycloak, proxy status DNS only
Perform updates and install necessary tools
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install docker.io docker-compose install docker
install docker compose, via e.g.:
DOCKER_CONFIG=${DOCKER_CONFIG:- $HOME / .docker}
mkdir -p $DOCKER_CONFIG /cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG /cli-plugins/docker-compose
Add your user to docker group
sudo usermod -aG docker $USER
sudo chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
Install Java
sudo apt install openjdk-25-jdk
Git clone keycloak-production repo into the machine and follow instructions there
most of the scripts are using hardcoded directory! Consider cloning it in the same one, or adjust systemd service definition
After this step, you will have secured instance (HTTPS) available on your domain with:
shared PostgresDB (used for keycloak and charging app itself)
keycloak
nginx (routing traffic from default HTTP/S port to different components)
You can’t perform that action at this time.