A web application to manage political party
app | ||
bin | ||
config | ||
db | ||
factories | ||
features | ||
fixtures | ||
lib | ||
log | ||
public | ||
script | ||
spec | ||
storage | ||
tmp | ||
vendor | ||
.gitignore | ||
.rubocop.yml | ||
.ruby-gemset | ||
.ruby-version | ||
.simplecov | ||
.travis.yml | ||
.yardopts | ||
Capfile | ||
CODE_OF_CONDUCT.md | ||
config.ru | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
Rakefile | ||
README.md |
Partynest
A web application to manage political party members and supporters.
Table of contents
Deploy
Tested with Ubuntu Server 18.04 LTS.
System packages
build-essential
bundler
liblzma-dev
libpq-dev
nodejs
npm
patch
ruby
ruby-dev
rubygems-integration
zlib1g-dev
Steps
- Create directory
/opt/partynest/
writable by deploy user - Copy file
config/master.key
to/opt/partynest/shared/config/
- Create PostgreSQL role
partynest
with passwordpassword
- Create PostgreSQL database
partynest_production
owned bypartynest
Example systemd services
Replace user
with the name of user and group
with the name of group
which you want an application to run as.
Web server
[Unit]
After=syslog.target network.target
Description=Partynest web server
[Service]
ExecStart=/usr/bin/bundle exec rails server --environment production
Group=group
Restart=on-failure
RestartSec=1
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=partynest-web
Type=simple
User=user
WorkingDirectory=/opt/partynest/current
[Install]
WantedBy=multi-user.target
Job processing
[Unit]
After=syslog.target network.target
Description=Partynest job processing
[Service]
ExecStart=/usr/bin/bundle exec sidekiq --environment production
Group=group
Restart=on-failure
RestartSec=1
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=partynest-worker
Type=simple
User=user
WorkingDirectory=/opt/partynest/current
[Install]
WantedBy=multi-user.target