Skip to content

Create a decidim-install.sh script that can handle the installation of a Decidim instance #113

@davidbeig

Description

@davidbeig

We need a script that could handle the installation of a Decidim instance in a newly created server, so that a user without much technical knowledge could do this process on it's own.

Things that need to be sorted out before the script:

  • Have a working pipeline to generate the Decidim images. Right now the :latest version is pointed to v0.28.6 and the latest decidim version built is the v0.29.1.
  • Queue system: Sidekiq is mandatory since v0.30. That means that we need a redis-compatible cache.
  • How to handle migrations. The decidim images, currently, are being generated with the decidim-generator and then pushed to the repository. That means that every image has a set of db migrations that don't share a timestamp.

This script should:

  • Know what OS it is being executed on.
    • First only available for debian based OS.
  • Specify decidim version (:latest, :community, v0.29, etc) and registry (ghcr.io/docker hub/etc). // ghcr.io/decidim/decidim:latest
  • Check for docker installation (maybe install it)
  • Guide the user on the necessary information
    • Application name
    • System admin
    • Host url
  • SMTP credentials
  • Maps credentials
  • Check if the server is accessible. IP/domain and open ports (80 and 443)
  • Create a folder that holds the docker-compose.yml and the configuration needed.
    • volume for storage
    • volume for db/migrations
  • Reverse proxy (Nginx or Traefik, as to handle also the SSL certificates)

Evolution of the script:

  • Handle updates
  • Handle rollbacks
  • Local backups of the database
  • Module installations

This script should have a well-documented entry in this repository/the decidim repository and docs.decidim.org.

References:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions