Skip to content

Conversation

@davidbeig
Copy link
Contributor

@davidbeig davidbeig commented Oct 16, 2025

This PR closes #113 .

We are adding a script that enables the creation of a Decidim instance based on the docker images built in this repository. The user will be guided through some questions on how to properly configure the instance, and the script itself will take care of the necessary dependencies (such as the database, where the storage is going to be located, etc).

Some improvements:

  • Checksum every file.
    This will generate extra-security on the download of the shell script and the files it uses, giving the final user more security.
  • Add health capabilities to the containers.

What we still need

  • We need a way to deliver releases of the install script. Currently there's a github action to create a .zip file that the script is going to download in the server and build from there all the infrastructure.

How to test
Since we still don't have the release zip, the way to test it is to zip ourselfs the script folder and push it to the server.

cd install
zip -r deploy.zip *
scp deploy.zip user@ip:/tmp/decidim-docker/install

Later on, we need the deploy.zip to be under the /tmp/decidim-docker-files/deploy.zip. It's a bit messy right now.

Also, if you want to try it locally you can use multipass

cd install
zip -r deploy.zip 
cd ..
multipass launch --name decidim-docker --cpus 2 --memory 4G --disk 20G
multipass mount . decidim-docker:/home/ubuntu/decidim-docker
multipass shell decidim-docker
cd decidim-docker
bash install/install.sh

@davidbeig davidbeig self-assigned this Oct 16, 2025
@davidbeig davidbeig marked this pull request as ready for review December 11, 2025 08:58
@andreslucena
Copy link
Member

@davidbeig can you check the qlty check blocking issues: https://qlty.sh/gh/decidim/projects/docker/pull/119/issues

As we've talked, @microstudi will do the first round and @greenwoodt will check out the English messages and tone.

Afterwards we'll check this out as @decidim/maintainers

Copy link

@microstudi microstudi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found one pain point when configuring the SMTP

Asked values are not explained, we should explain every parameter as most people won't undersand the meaning of each var:

so, instead of "SMTP_USERNAME", maybe somthing like:

SMTP Username (this is usually the email used to send emails)

Speacially confusing the difference between SMPT_ADRESS and SMTP_DOMAIN, we should explain the difference between these two!

Image

I found another problem at the end of the script:

Image

@davidbeig
Copy link
Contributor Author

I found one pain point when configuring the SMTP

Asked values are not explained, we should explain every parameter as most people won't undersand the meaning of each var:

so, instead of "SMTP_USERNAME", maybe somthing like:

SMTP Username (this is usually the email used to send emails)

Speacially confusing the difference between SMPT_ADRESS and SMTP_DOMAIN, we should explain the difference between these two!
Image

I found another problem at the end of the script:
Image

The last part of the script you see comes from the log of the application running.

It's, in fact, expected. It comes from this:
docker compose logs --tail=30

Since there are gems to install, the bundle check fails and then executes the bundle install.

I'm changing the wording in that part of the script to be explicit about this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

4 participants