LoginSignup
0
0

More than 1 year has passed since last update.

個人で市民参加のための政治参加プラットフォームDecidimのインスタンスを建てた話

Posted at

背景

↑にも書いた通り、産休に入って時間ができたので、以前から政策評価とか、政治参加を可能にするcivic tech的なものに興味があったので、Decidimに手を出してみた。DecidimそのものはOSSだが、国内だと一般社団法人 Code For Japanが自治体など向け(?)にDecidimを提供しているようだが、とりあえず個人でサイトを立ち上げてみる。

Decidimがどんなものが触ってみたい人はオンラインのデモもある ※スペイン語なのでちょっとビビるけど → https://try.decidim.org/

今回作ったサイトはこちら ※レンタルサーバー代がかかるようになったらcloseするかも

断り書き

筆者は元々はソフトウェアエンジニアとして新卒で採用されたものの、産休に入る直前はデータサイエンティストやML Opsに関する業務がメインだったため、業務外でレンタルサーバーを借りてサービスを運用するのは実は初めてなので、下記の手順書の中には間違っていたり不正確な記述がありえる。発見された方はコメントでお知らせいただけるとうれしい。

公式ドキュメント

ローカルでDecidimのインスタンスを動かすだけならばともかく、プロダクション環境でDecidimをインストールするためのドキュメントは結構探すのが大変だった。

試行錯誤の末、Decidim installation scriptを参考にするとうまくいった。
レンタルサーバーとしては、Install Decidim on Ubuntu 20.04の記述を参考に、DigitalOceanを利用した。上記リンクから新規ユーザ登録すると60日間有効な$200 creditが手に入るので当面実験する分には十分そう。業務外でレンタルサーバーを利用するのは初めての経験だが、AWSと比べて機能が絞り込まれているからなのか、DigitalOceanはシンプルなUIで結構使いやすい印象。

詳細な手順

  • まずはDigitalOceanで4Gのメモリを持つdroplet(仮想マシン)を作成する
    • Install Decidim on Ubuntu 20.04に記述通りメモリを1Gではなく4Gにしたのは、チャットルーム で質問したところメモリが足りないとbundle installするときやnpm installするときに失敗するよとアドバイスしてくれた人がいたため
    • imageとしてはUbuntu 20.04を選択。Ubuntu 18.04 にするとRubyのバージョンとかで後段の処理で失敗した...
wget -O install-decidim.sh https://raw.githubusercontent.com/Platoniq/decidim-install/master/script/install-decidim.sh
chmod +x install-decidim.sh
./install-decidim.sh -h
./install-decidim.sh my-decidim
# rootとして実行すんなと怒られる
  • Initial Server Setup with Ubuntu 20.04に従ってsammyの代わりにdecidimというユーザを作成してスクリプトを実行
  • 結構待つとインストールが終わるので、system adminとしてログインして、適切なorganizationを作成
  • Basic configuration of Decidimに従ってEmail configurationEnabling SSL (with Let’s encrypt)を済ませる
    • Setting up Oauth authentication以降はまだできていない
  • 結局実行したコマンドをまとめると
wget -O install-decidim.sh https://raw.githubusercontent.com/Platoniq/decidim-install/master/script/install-decidim.sh
chmod +x install-decidim.sh
./install-decidim.sh my-decidim
vim my-decidim/config/application.yml #4行追加
cd my-decidim/
vim config/initializers/decidim.rb
sudo vim /etc/sysctl.conf
sudo sysctl -p
sudo passenger-config restart-app ~/my-decidim
sudo apt install -y python3-certbot-nginx
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status

sudo certbot --nginx -d suginami-unofficial.com # これは自分で契約したドメイン

日本語化

vim ~/my-decidim/config/initializers/decidim.rb #:ja 追加
cd my-decidim/
bin/rails c

# データベース操作画面で
o=Decidim::Organization.find(1)
o.available_locales
o.available_locales += ["ja"]
o.default_locale = "ja"
o.save!

sudo passenger-config restart-app ~/my-decidim

今後のTODO

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0