101 lines
3 KiB
YAML
101 lines
3 KiB
YAML
- name: Clone mastodon
|
|
git:
|
|
repo: "https://github.com/mastodon/mastodon.git"
|
|
dest: "{{ mastodon_home }}/{{mastodon_path}}"
|
|
clone: true
|
|
|
|
# - name: Update to latest version
|
|
# shell: "git fetch; git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)"
|
|
# args:
|
|
# chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
|
|
- name: Bundle install
|
|
shell: "
|
|
~/.rbenv/shims/bundle config set --local deployment 'true' && \
|
|
~/.rbenv/shims/bundle config set --local without 'test' && \
|
|
~/.rbenv/shims/bundle config set --local with 'development' && \
|
|
~/.rbenv/shims/bundle install -j$(getconf _NPROCESSORS_ONLN)
|
|
"
|
|
args:
|
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
|
|
- name: Yarn install
|
|
command: yarn install --pure-lockfile
|
|
args:
|
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
|
|
- name: Install systemd sidekiq Service Files
|
|
template:
|
|
src: ../files/systemd/mastodon-sidekiq.service.j2
|
|
dest: /etc/systemd/system/mastodon-sidekiq.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Install systemd web Service Files
|
|
template:
|
|
src: ../files/systemd/mastodon-web.service.j2
|
|
dest: /etc/systemd/system/mastodon-web.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Install systemd streaming Service Files
|
|
template:
|
|
src: ../files/systemd/mastodon-streaming.service.j2
|
|
dest: /etc/systemd/system/mastodon-streaming.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Media cleanup cronjob
|
|
cron:
|
|
name: "media cleanup"
|
|
minute: "15"
|
|
hour: "1"
|
|
job: '/bin/bash -c ''export PATH="$HOME/.rbenv/bin:$PATH"; eval "$(rbenv init -)"; cd {{ mastodon_home }}/{{ mastodon_path }} && RAILS_ENV=production ./bin/tootctl media remove'''
|
|
|
|
- stat: path={{ mastodon_home }}/{{ mastodon_path }}/.env.production
|
|
register: production_config
|
|
|
|
- name: Migrate database
|
|
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails db:migrate"
|
|
args:
|
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
when: production_config.stat.exists
|
|
|
|
- name: Precompile assets
|
|
shell: "RAILS_ENV=production ~/.rbenv/shims/bundle exec rails assets:precompile"
|
|
args:
|
|
chdir: "{{ mastodon_home }}/{{ mastodon_path }}"
|
|
when: production_config.stat.exists
|
|
|
|
- name: Enable mastodon-web
|
|
command: systemctl enable mastodon-web.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Enable mastodon-streaming
|
|
command: systemctl enable mastodon-streaming.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Enable mastodon-sidekiq
|
|
command: systemctl enable mastodon-sidekiq.service
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Restart mastodon-web
|
|
command: systemctl restart mastodon-web.service
|
|
when: production_config.stat.exists
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Restart mastodon-streaming
|
|
command: systemctl restart mastodon-streaming.service
|
|
when: production_config.stat.exists
|
|
become: true
|
|
become_user: root
|
|
|
|
- name: Restart mastodon-sidekiq
|
|
command: systemctl restart mastodon-sidekiq.service
|
|
when: production_config.stat.exists
|
|
become: true
|
|
become_user: root
|