Jacob Michalskie 7851d1
{% set ruby = "ruby3.1" %}
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_dependencies:
Jacob Michalskie 7851d1
  pkg.installed:
Jacob Michalskie 7851d1
    - pkgs:
Jacob Michalskie 7851d1
      - git
Jacob Michalskie 7851d1
      - tar
Jacob Michalskie 7851d1
      - make
Jacob Michalskie 7851d1
      - gcc-c++
Jacob Michalskie 7851d1
      - zlib-devel
Jacob Michalskie 7851d1
      - postgresql-devel
Jacob Michalskie 7851d1
      - postgresql-server-devel
Jacob Michalskie 7851d1
      - {{ ruby }}-devel
Jacob Michalskie 7851d1
      - system-user-wwwrun
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_user:
Jacob Michalskie 7851d1
  user.present:
Jacob Michalskie 7851d1
    - name: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
/srv/www/paste-o-o:
Jacob Michalskie 7851d1
  file.directory:
Jacob Michalskie 7851d1
    - user: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
https://github.com/openSUSE/paste-o-o.git:
Jacob Michalskie 7851d1
  git.latest:
Jacob Michalskie 7851d1
    - branch: main
Jacob Michalskie 7851d1
    - target: /srv/www/paste-o-o
Jacob Michalskie 1a0b8f
    - rev: main
Jacob Michalskie 7851d1
    - user: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_ruby_dependencies:
Jacob Michalskie 7851d1
  cmd.run:
Jacob Michalskie 7851d1
    - name: bundler.{{ ruby }} install
Jacob Michalskie 7851d1
    - cwd: /srv/www/paste-o-o
Jacob Michalskie 7851d1
    - runas: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_db_migration:
Jacob Michalskie 7851d1
  cmd.run:
Jacob Michalskie 7851d1
    - name: bin/rails db:migrate
Jacob Michalskie 7851d1
    - cwd: /srv/www/paste-o-o
Jacob Michalskie 7851d1
    - env:
Jacob Michalskie 7851d1
      - RAILS_ENV: 'production'
Jacob Michalskie 7851d1
    - runas: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_assets_precompile:
Jacob Michalskie 7851d1
  cmd.run:
Jacob Michalskie 7851d1
    - name: bin/rails assets:precompile
Jacob Michalskie 7851d1
    - cwd: /srv/www/paste-o-o
Jacob Michalskie 7851d1
    - env:
Jacob Michalskie 7851d1
      - RAILS_ENV: 'production'
Jacob Michalskie 7851d1
    - runas: paste
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
/etc/systemd/system/paste.service:
Jacob Michalskie 7851d1
  file.managed:
Jacob Michalskie 7851d1
    - source: salt://profile/paste/files/paste.service
Jacob Michalskie 7851d1
    - template: jinja
Jacob Michalskie 7851d1
    - context:
Jacob Michalskie 7851d1
      ruby: {{ ruby }}
Jacob Michalskie 7851d1
    - require_in:
Jacob Michalskie 7851d1
      - service: paste_service
Jacob Michalskie 7851d1
Jacob Michalskie b13731
{% for config in ['site', 'storage', 'database'] %}
Jacob Michalskie b13731
/srv/www/paste-o-o/config/{{ config }}.yml:
Jacob Michalskie 7851d1
  file.managed:
Jacob Michalskie b13731
    - source: salt://profile/paste/files/{{ config }}.yml
Jacob Michalskie 7851d1
    - template: jinja
Jacob Michalskie 7851d1
    - user: paste
Jacob Michalskie 7851d1
    - require_in:
Jacob Michalskie 7851d1
      - service: paste_service
Jacob Michalskie 7851d1
    - watch_in:
Jacob Michalskie 7851d1
      - module: paste_restart
Jacob Michalskie b13731
{% endfor %}
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_service:
Jacob Michalskie 7851d1
  service.running:
Jacob Michalskie 7851d1
    - name: paste.service
Jacob Michalskie 7851d1
    - enable: True
Jacob Michalskie 7851d1
Jacob Michalskie 7851d1
paste_restart:
Jacob Michalskie 7851d1
  module.wait:
Jacob Michalskie 7851d1
    - name: service.restart
Jacob Michalskie 7851d1
    - m_name: paste.service
Jacob Michalskie 7851d1
    - require:
Jacob Michalskie 7851d1
      - service: paste_service