add devzat chat server
This commit is contained in:
parent
8c3e24b4a8
commit
7d74493850
1
TODO.md
1
TODO.md
@ -28,3 +28,4 @@
|
|||||||
Admin id: 82f6872383933e913b31dbb906e4c44ea2937bea9531ac11429f16cee2e5a975
|
Admin id: 82f6872383933e913b31dbb906e4c44ea2937bea9531ac11429f16cee2e5a975
|
||||||
|
|
||||||
https://github.com/quackduck/devzat
|
https://github.com/quackduck/devzat
|
||||||
|
|
||||||
|
|||||||
@ -9,9 +9,11 @@ packages:
|
|||||||
- bash
|
- bash
|
||||||
- doas
|
- doas
|
||||||
- knot-resolver
|
- knot-resolver
|
||||||
|
- go122
|
||||||
|
- git
|
||||||
|
|
||||||
# used by bastille to build a base
|
# used by bastille to build a base
|
||||||
release: 14.1-RELEASE
|
release: 14.2-RELEASE
|
||||||
|
|
||||||
# snapshot to install in new vps
|
# snapshot to install in new vps
|
||||||
snapshot: FreeBSD-14.2-RELEASE-p0-0-hcloud-init
|
snapshot: FreeBSD-14.2-RELEASE-p0-0-hcloud-init
|
||||||
|
|||||||
20
roles/chat/files/devzat
Normal file
20
roles/chat/files/devzat
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /etc/rc.subr
|
||||||
|
|
||||||
|
name=devzat
|
||||||
|
rcvar=devzat_enable
|
||||||
|
|
||||||
|
start_cmd="${name}_start"
|
||||||
|
stop_cmd=":"
|
||||||
|
|
||||||
|
load_rc_config $name
|
||||||
|
: ${devzat_enable:=no}
|
||||||
|
: ${devzat_config="/usr/local/etc/devzat.yml"}
|
||||||
|
: ${devzat_daemon="/usr/local/sbin/devzat"}
|
||||||
|
|
||||||
|
devzat_start() {
|
||||||
|
DEVZAT_CONFIG="${devzat_config}" ${devzat_daemon}
|
||||||
|
}
|
||||||
|
|
||||||
|
run_rc_command "$1"
|
||||||
18
roles/chat/files/devzat.yml
Normal file
18
roles/chat/files/devzat.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# what port to host a server on ($PORT overrides this)
|
||||||
|
port: 22
|
||||||
|
|
||||||
|
# what port to host profiling on (unimportant)
|
||||||
|
profile_port: 5555
|
||||||
|
|
||||||
|
# where to store data such as bans and logs
|
||||||
|
data_dir: /var/run/devzat-data
|
||||||
|
|
||||||
|
# where the SSH private key is stored
|
||||||
|
key_file: /var/run/devzat-sshkey
|
||||||
|
|
||||||
|
# whether to censor messages (optional)
|
||||||
|
censor: false
|
||||||
|
|
||||||
|
# a list of admin IDs and notes about them
|
||||||
|
admins:
|
||||||
|
82f6872383933e913b31dbb906e4c44ea2937bea9531ac11429f16cee2e5a975: 'Seher Taak: github.com/tlinden'
|
||||||
52
roles/chat/tasks/main.yaml
Normal file
52
roles/chat/tasks/main.yaml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
- name: build devzat
|
||||||
|
shell: |
|
||||||
|
cd /tmp
|
||||||
|
git clone https://github.com/quackduck/devzat
|
||||||
|
cd /tmp/devzat
|
||||||
|
go build
|
||||||
|
|
||||||
|
- name: create services template dir
|
||||||
|
file:
|
||||||
|
path: "/usr/local/bastille/templates/services/{{ role_name }}"
|
||||||
|
state: directory
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- name: copy template config files
|
||||||
|
template:
|
||||||
|
src: Bastillefile.j2
|
||||||
|
dest: "/usr/local/bastille/templates/services/{{ role_name }}/Bastillefile"
|
||||||
|
|
||||||
|
- name: create config paths
|
||||||
|
file:
|
||||||
|
path: "/usr/local/bastille/templates/services/{{ role_name }}/{{ item }}/"
|
||||||
|
state: directory
|
||||||
|
recurse: yes
|
||||||
|
loop:
|
||||||
|
- usr/local/etc
|
||||||
|
- usr/local/etc/rc.d
|
||||||
|
- usr/local/sbin
|
||||||
|
|
||||||
|
- name: copy devzat binary
|
||||||
|
shell: install -m 755 /tmp/devzat/devzat /usr/local/bastille/templates/services/{{ role_name }}/usr/local/sbin/devzat
|
||||||
|
|
||||||
|
- name: copy devzat config file
|
||||||
|
copy:
|
||||||
|
src: devzat.yml
|
||||||
|
dest: "/usr/local/bastille/templates/services/{{ role_name }}/usr/local/etc/"
|
||||||
|
|
||||||
|
- name: copy devzat rc file
|
||||||
|
copy:
|
||||||
|
src: devzat
|
||||||
|
dest: "/usr/local/bastille/templates/services/{{ role_name }}/usr/local/etc/rc.d/"
|
||||||
|
|
||||||
|
- name: create jail
|
||||||
|
shell: "bastille create -B {{ role_name }} {{ release }} {{ chatip.stdout }}/64 bridge0"
|
||||||
|
args:
|
||||||
|
creates: /usr/local/bastille/jails/{{ role_name }}
|
||||||
|
|
||||||
|
- name: start jail
|
||||||
|
shell: bastille start {{ role_name }} || true
|
||||||
|
|
||||||
|
- name: template jail
|
||||||
|
shell: "bastille template {{ role_name }} services/{{ role_name }}"
|
||||||
9
roles/chat/templates/Bastillefile.j2
Normal file
9
roles/chat/templates/Bastillefile.j2
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
CP usr /
|
||||||
|
|
||||||
|
SYSRC sendmail_enable=NONE
|
||||||
|
SYSRC tmpsize=500m
|
||||||
|
SYSRC tmpmfs=AUTO
|
||||||
|
SYSRC clear_tmp_enable=YES
|
||||||
|
SYSRC devzat_enable=YES
|
||||||
|
|
||||||
|
SERVICE devzat start
|
||||||
@ -3,6 +3,10 @@
|
|||||||
shell: echo {{ server_ipv6 }} | sed 's/::1/::2/'
|
shell: echo {{ server_ipv6 }} | sed 's/::1/::2/'
|
||||||
register: jailip
|
register: jailip
|
||||||
|
|
||||||
|
- name: determine ipv6 jail address
|
||||||
|
shell: echo {{ server_ipv6 }} | sed 's/::1/::3/'
|
||||||
|
register: chatip
|
||||||
|
|
||||||
- name: determine ipv6 net
|
- name: determine ipv6 net
|
||||||
shell: echo '{{ ipv6_network }}/64'
|
shell: echo '{{ ipv6_network }}/64'
|
||||||
register: jailnet
|
register: jailnet
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user