Skip to main content

For Developers

Welcome!

This is the documentation of the product voca. Voca is an open-source system to deploy open-civic tech in a breeze, with some nice defaults. For now, we support only Decidim.

In this page, we will list the different link you will access code, docker image, and have an overview of our architecture.

Explore the documentation

NameTime needed
Install your own voca2hours
Backup and data retention30min
Observability15min
Scaling and production1hour
Additional Tools for Decidim1hour
Basics interventions on Decidim30min
Advanced interventions on Decidim30min
Contribute to voca2hours
Design

Shortcuts

Repository

The project lays in two repositories:

namegitlab repositorydescription
systemhttps://git.octree.ch/decidim/vocacity/system/Contains all the code and configurations for the infrastructure. Included an UI/Backend to manage instances.
taskshttps://git.octree.ch/decidim/vocacity/tasksA decidim GEM to allow voca to change some internals dynamically through a private RPC API.

Docker Images

We work intensively with docker, you will need to use our images builded for voca to make voca works easily.

nameimage urldockerfiledescription
nginxgit.octree.ch:4567/decidim/vocacity/system/nginxhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/nginx/Dockerfile?ref_type=headsA nginx configuration with GEOIP2, modsecure, and configuration for proxying request to decidim efficiently.
Use templating with environment variables to configure loadbalancer.
traefikgit.octree.ch:4567/decidim/vocacity/system/traefikhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/traefik/Dockerfile?ref_type=headsA traefik image to loadbalance all your voca service to the differents installed decidim.
Use templating with environment variables to configure loadbalancer.
rpc-protosnot published, build only locallyhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/rpc-protos/Dockerfile?ref_type=headsAllow to build the rpc clients for nodes and ruby.
backendgit.octree.ch:4567/decidim/vocacity/system/backendhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/backend/Dockerfile?ref_type=headsA Strapi backend to manage the different user, workspaces, and deployment.
frontendgit.octree.ch:4567/decidim/vocacity/system/frontendhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/frontend/Dockerfile?ref_type=headsA Next frontend to make a nice and secure UI for the user.
decidimgit.octree.ch:4567/decidim/vocacity/system/decidimhttps://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/decidim-docker/Dockerfile?ref_type=headsA Decidim Image

General structure of Voca