Files
upstream-zulip/puppet/kandra/manifests/app_frontend.pp
upstream-mirror 64898b2c79
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
2026-09-15 15:05:30 +05:00

83 lines
2.5 KiB
Puppet

class kandra::app_frontend {
include zulip::snakeoil
include zulip::app_frontend_base
include zulip::profile::memcached
include zulip::profile::rabbitmq
include zulip::local_mailserver
include zulip::hooks::sentry
include kandra::app_frontend_monitoring
include kandra::app_frontend_tmpfs
kandra::firewall_allow{ 'smtp': }
kandra::firewall_allow{ 'http': }
kandra::firewall_allow{ 'https': }
$redis_hostname = zulipconf('redis', 'hostname', undef)
group { 'redistunnel':
ensure => present,
gid => '1080',
}
user { 'redistunnel':
ensure => present,
uid => '1080',
gid => '1080',
groups => ['zulip'],
shell => '/bin/true',
home => '/home/redistunnel',
managehome => true,
}
kandra::user_dotfiles { 'redistunnel':
keys => true,
known_hosts => [$redis_hostname],
}
package { 'autossh': ensure => installed }
file { "${zulip::common::supervisor_conf_dir}/redis_tunnel.conf":
ensure => file,
require => [
Package['supervisor', 'autossh'],
Kandra::User_Dotfiles['redistunnel'],
],
owner => 'root',
group => 'root',
mode => '0644',
content => template('kandra/supervisor/conf.d/redis_tunnel.conf.template.erb'),
notify => Service['supervisor'],
}
# Need redis_password in its own file for Nagios
file { '/var/lib/nagios/redis_password':
ensure => file,
mode => '0600',
owner => 'nagios',
group => 'nagios',
content => zulipsecret('secrets', 'redis_password', ''),
}
# Mount /etc/zulip/well-known/ as /.well-known/
file { '/etc/nginx/zulip-include/app.d/well-known.conf':
require => File['/etc/nginx/zulip-include/app.d'],
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/kandra/nginx/zulip-include-app.d/well-known.conf',
notify => Service['nginx'],
}
# Serve /static/navigation-tour-video/
file { '/etc/nginx/zulip-include/app.d/navigation-tour-video.conf':
require => File['/etc/nginx/zulip-include/app.d'],
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/kandra/nginx/zulip-include-app.d/navigation-tour-video.conf',
notify => Service['nginx'],
}
# Each server does its own fetching of contributor data, since
# we don't have a way to synchronize that among several servers.
zulip::cron { 'fetch-contributor-data':
hour => '8',
minute => '0',
command => '/home/zulip/deployments/current/tools/fetch-contributor-data',
}
}