Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: refactor authentification and initiatives votes flow #93

Merged
merged 19 commits into from
Dec 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .env-example
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,14 @@
# ENABLE_RACK_ATTACK=1

# Deface is already precompiled in Dockerfile, default is false to prevent duplicates
# DEFACE_ENABLED=false
# DEFACE_ENABLED=false

DECIDIM_ADMIN_PASSWORD_STRONG="false"
# Puma server configuration
# PUMA_MIN_THREADS=5
# PUMA_MAX_THREADS=5
# PUMA_WORKERS=0
# PUMA_PRELOAD_APP=false

# Override after confirmation path with custom route
# AH_REDIRECT_AFTER_CONFIRMATION="/initiatives"
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,6 @@ vendor/cache
yarn-debug.log*
.yarn-integrity
*.rubocop-https*
certificate-https-local/

.DS_Store
3 changes: 1 addition & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ RUN yarn install --frozen-lockfile
COPY . .

RUN bundle exec bootsnap precompile --gemfile app/ lib/ config/ bin/ db/ && \
bundle exec rails assets:precompile && \
bundle exec rails deface:precompile
bundle exec rails assets:precompile

RUN rm -rf node_modules tmp/cache vendor/bundle spec \
&& rm -rf /usr/local/bundle/cache/*.gem \
Expand Down
55 changes: 55 additions & 0 deletions Dockerfile.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Builder Stage
FROM ruby:3.0.6-slim as builder

ENV RAILS_ENV=production \
SECRET_KEY_BASE=dummy

WORKDIR /app

RUN apt-get update -q && \
apt-get install -yq libpq-dev curl git libicu-dev build-essential openssl && \
curl https://deb.nodesource.com/setup_16.x | bash && \
apt-get install -y nodejs && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
npm install --global yarn && \
gem install bundler:2.4.9

COPY Gemfile Gemfile.lock ./
RUN bundle config set --local without 'development test' && \
bundle install -j"$(nproc)"

COPY package.json yarn.lock ./
COPY packages packages
RUN yarn install --frozen-lock

COPY . .

RUN bundle exec bootsnap precompile --gemfile app/ lib/ config/ bin/ db/ && \
bundle exec rails assets:precompile

run mkdir certificate-https-local
RUN openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=France/L=Paris/O=decidim/CN=decidim.eu" -keyout ./certificate-https-local/key.pem -out ./certificate-https-local/cert.pem;

# Runner Stage
FROM ruby:3.0.6-slim as runner

ENV RAILS_ENV=production \
SECRET_KEY_BASE=dummy \
RAILS_LOG_TO_STDOUT=true \
LD_PRELOAD="libjemalloc.so.2" \
MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:5000,muzzy_decay_ms:5000,narenas:2"

WORKDIR /app

RUN apt-get update -q && \
apt-get install -yq postgresql-client imagemagick libproj-dev proj-bin libjemalloc2 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
gem install bundler:2.4.9

COPY --from=builder /usr/local/bundle /usr/local/bundle
COPY --from=builder /app /app

EXPOSE 3000
CMD ["bundle", "exec", "rails", "server", "-b", "ssl://0.0.0.0:3000?key=/app/certificate-https-local/key.pem&cert=/app/certificate-https-local/cert.pem"]
4 changes: 1 addition & 3 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ gem "decidim-initiatives", "~> #{DECIDIM_VERSION}.0"
# External Decidim gems
gem "decidim-blog_author_petition", git: "https://github.com/OpenSourcePolitics/decidim-module-blog_author_petition.git", branch: "main"
gem "decidim-decidim_awesome", git: "https://github.com/decidim-ice/decidim-module-decidim_awesome.git", branch: "main"
gem "decidim-extended_socio_demographic_authorization_handler", git: "https://github.com/OpenSourcePolitics/decidim-module-extended_socio_demographic_authorization_handler.git",
branch: "cese"
gem "decidim-initiative_status", git: "https://github.com/OpenSourcePolitics/decidim-module-initiative_status.git", branch: "main"
gem "decidim-spam_detection"
gem "decidim-term_customizer", git: "https://github.com/armandfardeau/decidim-module-term_customizer.git", branch: "fix/precompile-on-docker-0.27"
Expand All @@ -36,13 +34,13 @@ gem "deface"
gem "faker", "~> 2.14"
gem "fog-aws"
gem "foundation_rails_helper", git: "https://github.com/sgruhier/foundation_rails_helper.git"
gem "letter_opener_web", "~> 2.0"
gem "omniauth-rails_csrf_protection", "~> 1.0"
gem "puma", ">= 5.6.2"
gem "rack-attack"
gem "sys-filesystem"

group :development do
gem "letter_opener_web", "~> 2.0"
gem "listen", "~> 3.1"
gem "rubocop-faker"
gem "spring", "~> 2.0"
Expand Down
9 changes: 0 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,6 @@ GIT
decidim-blog_author_petition (0.1)
decidim-core (~> 0.27)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-extended_socio_demographic_authorization_handler.git
revision: f51e6314e014fe89156b1115dbd7fe14ecaa5565
branch: cese
specs:
decidim-extended_socio_demographic_authorization_handler (0.26.1)
decidim-core (~> 0.27)

GIT
remote: https://github.com/OpenSourcePolitics/decidim-module-initiative_status.git
revision: eae4e5440fc84adac72097afb6e06ec172795dd4
Expand Down Expand Up @@ -1032,7 +1024,6 @@ DEPENDENCIES
decidim-blog_author_petition!
decidim-decidim_awesome!
decidim-dev (~> 0.27.0)
decidim-extended_socio_demographic_authorization_handler!
decidim-initiative_status!
decidim-initiatives (~> 0.27.0)
decidim-spam_detection
Expand Down
102 changes: 26 additions & 76 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,89 +1,39 @@
#### Terraform | Scaleway provider
init-scw:
terraform -chdir=deploy/providers/scaleway init

plan-scw:
@make init-scw
terraform -chdir=deploy/providers/scaleway plan

deploy-scw:
@make init-scw
terraform -chdir=deploy/providers/scaleway apply

destroy-scw:
terraform -chdir=deploy/providers/scaleway destroy

### Docker usage
run: up
@make create-seeds

# Docker images commands
up:
docker-compose -f docker-compose.local.yml up --build -d
@make setup-database

REGISTRY := rg.fr-par.scw.cloud
NAMESPACE := decidim-app
VERSION := latest
IMAGE_NAME := decidim-app
TAG := $(REGISTRY)/$(NAMESPACE)/$(IMAGE_NAME):$(VERSION)
# Stops containers and remove volumes
teardown:
docker-compose -f docker-compose.local.yml down -v --rmi all

login:
docker login $(REGISTRY) -u nologin -p $(SCW_SECRET_TOKEN)
create-database:
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:create'

build-classic:
docker build -t $(IMAGE_NAME):$(VERSION) .
build-scw:
docker build -t $(TAG) .
push:
@make build-scw
@make login
docker push $(TAG)
pull:
@make build-scw
docker pull $(TAG)
setup-database: create-database
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:migrate'

# Bundle commands
create-database:
docker-compose run app bundle exec rails db:create
run-migrations:
docker-compose run app bundle exec rails db:migrate
# Create seeds
create-seeds:
docker-compose run app bundle exec rails db:seed
docker-compose -f docker-compose.local.yml exec app /bin/bash -c 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 /usr/local/bundle/bin/bundle exec rake db:schema:load db:seed'

# Database commands
# Restore dump
restore-dump:
bundle exec rake restore_dump
bundle exec rake restore_dump

# Start commands seperated by context
start:
docker-compose up
shell:
docker-compose -f docker-compose.local.yml exec app /bin/bash

start-dumped-decidim:
@make create-database
@make -i restore-dump
@make run-migrations
@make start
start-seeded-decidim:
@make create-database
@make run-migrations
@make create-seeds
@make start
start-clean-decidim:
@make create-database
@make run-migrations
@make start
restart:
docker-compose -f docker-compose.local.yml up -d

# Utils commands
rails-console:
docker exec -it decidim-app_app_1 rails c
connect-app:
docker exec -it decidim-app_app_1 bash
rebuild:
docker-compose -f docker-compose.local.yml up --build -d

# Stop and delete commands
stop:
docker-compose down
delete:
@make stop
docker volume prune
status:
docker-compose -f docker-compose.local.yml ps

local-dev:
docker-compose -f docker-compose.dev.yml up -d
@make create-database
@make run-migrations
@make create-seeds
logs:
docker-compose -f docker-compose.local.yml logs app
Loading
Loading