Code Monkey home page Code Monkey logo

decidim-lyon's Introduction

Decidim app by OSP

Citizen Participation and Open Government application.

Deploy with Terraform

Terraform is an open-source infrastructure as code software tool that provides an easy deployment of your infrastructure for installing Decidim.

Many providers are available (AWS, Heroku, DigitalOcean...). Check the Terraform registry to see how to use Terraform with your provider

Each Terraform deployment are stored in the deploy folder and sorted by providers

Feel free to add new deployments!

Availables deployments

Environment variables

Each provider will need a way to authenticate at their API. Make sure to set environment variables asked in the provider's documentation before using deployments.

  • To use Scaleway's provider
export SCW_ACCESS_KEY=<your_access_key>
export SCW_TOKEN=<your_scw_token>
export SCW_DEFAULT_PROJECT_ID=<id_of_your_project/organization>
  • To use DigitalOcean's provider
export DIGITALOCEAN_TOKEN=<your_do_token>
export SPACES_ACCESS_KEY_ID=<your_do_space_access_key>
export SPACES_SECRET_ACCESS_KEY=<your_do_space_secret_key>

How to deploy with Terraform?

Check the list of make commands in the Makefile. Each command corresponds to a provider and a specific need.

  • To deploy a new infrastructure with Scaleway
make deploy-scw

Setting up the application

You will need to do some steps before having the app working properly once you've deployed it:

  1. Open a Rails console in the server: bundle exec rails console
  2. Create a System Admin user:
email = <your email>
password = <a secure password>
user = Decidim::System::Admin.new(email: email, password: password, password_confirmation: password)
user.save!
  1. Visit <your app url>/system and login with your system admin credentials
  2. Create a new organization. Check the locales you want to use for that organization, and select a default locale.
  3. 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.
  4. Fill the rest of the form and submit it.

You're good to go!

Running tests

This application has a functional testing suite. You can easily run locally the tests as following :

Create test environment database

bundle exec rake test:setup

And then run tests using rspec

bundle exec rspec spec/

Docker

How to use it?

You can boot a Decidim environment in Docker using the Makefile taht will run docker-compose commands and the last built image from the Dockerfile. Three context are available :

  • Clean Decidim

An environment running the current Decidim version (from Gemfile) without any data.

make start-clean-decidim
  • Seeded Decidim

An environment running the current Decidim version (from Gemfile) with generated seeds

make start-seeded-decidim
  • Dumped Decidim

An environment running the current Decidim version (from Gemfile) with real data dumped from an existing platform to simulate a Decidim bump version before doing in the real production environment.

make start-dumped-decidim

Warning : you need to get a psql dump on your local machine to restore it in your containerized database Warning2 : you need to set organization host to 0.0.0.0 with the rails console

How to stop and remove it?

To get rid off your Docker environmnent :

  • Shut down Docker environmnent
make stop
  • Delete resources
make delete

Troubleshooting

Make commands are available to help you troubleshoot your Docker environment

  • Start Rails console
make rails-console
  • Start bash session to app container
make connect-app

Database architecture (ERD)

Architecture_decidim

decidim-lyon's People

Contributors

moustachu avatar armandfardeau avatar quentinchampenois avatar juliesimon avatar ludivinecp avatar morets avatar paulinebessoles avatar virgile-dev avatar pierreozoux avatar netbe avatar ayakork avatar eliegaboriau avatar luciegrau avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.