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

Name Time needed
Install your own voca 2hours
Backup and data retention 30min
Observability 15min
Scaling and production 1hour
Additional Tools for Decidim 1hour
Basics interventions on Decidim 30min
Advanced interventions on Decidim 30min
Contribute to voca 2hours
Design

Shortcuts

Repository

The project lays in two repositories:

name gitlab repository description
system https://git.octree.ch/decidim/vocacity/system/ Contains all the code and configurations for the infrastructure. Included an UI/Backend to manage instances.
tasks https://git.octree.ch/decidim/vocacity/tasks A 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.

name image url dockerfile description
nginx git.octree.ch:4567/decidim/vocacity/system/nginx https://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/nginx/Dockerfile?ref_type=heads A nginx configuration with GEOIP2, modsecure, and configuration for proxying request to decidim efficiently.
Use templating with environment variables to configure loadbalancer.
traefik git.octree.ch:4567/decidim/vocacity/system/traefik https://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/traefik/Dockerfile?ref_type=heads A traefik image to loadbalance all your voca service to the differents installed decidim.
Use templating with environment variables to configure loadbalancer.
rpc-protos not published, build only locally https://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/rpc-protos/Dockerfile?ref_type=heads Allow to build the rpc clients for nodes and ruby.
backend git.octree.ch:4567/decidim/vocacity/system/backend https://git.octree.ch/decidim/vocacity/system/-/blob/main/backend/Dockerfile?ref_type=heads A Strapi backend to manage the different user, workspaces, and deployment.
frontend git.octree.ch:4567/decidim/vocacity/system/frontend https://git.octree.ch/decidim/vocacity/system/-/blob/main/frontend/Dockerfile?ref_type=heads A Next frontend to make a nice and secure UI for the user.
decidim git.octree.ch:4567/decidim/vocacity/system/decidim https://git.octree.ch/decidim/vocacity/system/-/blob/main/contrib/decidim-docker/Dockerfile?ref_type=heads A Decidim Image

General structure of Voca

https://whimsical.com/embed/TFob7M4KmCdnV3m9HxFnbQ@2Ux7TurymNtUyvy99p3X