Free Open-Source participatory democracy, citizen participation and open government for cities and organizations
This is the open-source repository for decidim-mozambique, based on Decidim.
This is the instance for Decidim mozambique https://to-be-defined
Docker & Docker Compose is needed, then clone this repository:
git clone https://github.com/gasparbucuane/DECIDIM decidim-production
or update:
cd decidim-production
git pull
Ensure the .env file has these values defined:
POSTGRES_USER=XXXXXX
POSTGRES_PASSWORD=XXXXXX
POSTGRES_DB=XXXXXX
SECRET_KEY_BASE=XXXXXX
MAPS_API_KEY=XXXXXX
EMAIL=XXXXXX
SMTP_USERNAME=XXXXXX
SMTP_PASSWORD=XXXXXX
SMTP_ADDRESS=XXXXXX
SMTP_DOMAIN=XXXXXX
SMTP_PORT=XXXXXX
DECIDIM_ENV=production
DECIDIM_HOST=decidim.example.org
DASHBOARD_AUTH_PASSWORD='$2y$10$0Ipw2g9Utl.ZgI1ozWB2aeuwiXJ1tQC3eBo/g5.MZ0GhP7iliooia' # adminThis application uses Traefik to handle the certificates with Let's Encrypt.
You need to ensure that the env var DECIDIM_HOST is set to a valid hostname pointing to the server's ip.
Traefik dashboard is available at https://DECIDIM_HOST:4430 with basic authentication enabled.
User: admin
Password: Generate a password into the env DASHBOARD_AUTH_PASSWORD with the comman htpasswd -nBC 10 admin
This instance uses Docker Compose to deploy the application into the port 80 and 443 using Traefik as a web proxy.
Apply these instructions if the repository is in an organization First, you need to make sure you are logged into the Github Docker registry (ghcr.io).
- Go to your personal Github account, into tokens settings https://github.com/settings/tokens
- Generate a new token (Classic)
- Ensure you check the permission "read:packages" and "No expiration".
- In the server, login into docker, introduce your username and the token generated:
docker login ghcr.io --username github-username
- You should stay logged permanently, you should not need to repeat this process.
To re-deploy the image this should suffice:
cd decidim-production
git pull
docker compose up -dThis instance uses Docker Compose to deploy the application with Traefik as a proxy.
If you want to locally build the docker image, change the line
image: ghcr.io/gasparbucuane/DECIDIM:${GIT_REF:-main}forimage: decidim_${DECIDIM_ENV:-production}first!
You need to build and tag the image:
- Ensure you have the ENV value
DECIDIM_ENV=stagingorDECIDIM_ENV=production - Run:
./build.sh - Deploy:
docker compose up -d
Database is backup every day using https://github.com/tiredofit/docker-db-backup (see docker-compose.yml for details)
Backups are stored in:
backups/*
You will need to do some steps before having the app working properly once you've deployed it:
- Open a Rails console in the server:
bundle exec rails console - Create a System Admin user:
user = Decidim::System::Admin.new(email: <email>, password: <password>, password_confirmation: <password>)
user.save!- Visit
<your app url>/systemand login with your system admin credentials - Create a new organization. Check the locales you want to use for that organization, and select a default locale.
- Set the correct default host for the organization, otherwise the app will not work properly. Note that you need to include any subdomain you might be using.
- Fill the rest of the form and submit it.
You're good to go!