Compare commits
1 Commits
main
...
js-patch-1
| Author | SHA1 | Date |
|---|---|---|
|
|
ee11b8fec9 |
20
README.md
20
README.md
|
|
@ -9,23 +9,7 @@ UUID Generator
|
||||||
export DISTROBUILDER_ROOT_UUID=$(uuidgen)
|
export DISTROBUILDER_ROOT_UUID=$(uuidgen)
|
||||||
|
|
||||||
# Image Compile
|
# Image Compile
|
||||||
Jey ERP Stable Version 16
|
distrobuilder build-incus -o image.architecture=amd64 -o image.release=3.21 erp.yaml
|
||||||
distrobuilder build-incus -o image.architecture=amd64 -o image.release=3.23 jeyerp-stable.yaml
|
|
||||||
|
|
||||||
Jey ERP Latest Version Develop
|
|
||||||
distrobuilder build-incus -o image.architecture=amd64 -o image.release=edge jeyerp-latest.yaml
|
|
||||||
|
|
||||||
ERPNext Stable Version 16
|
|
||||||
distrobuilder build-incus -o image.architecture=amd64 -o image.release=3.23 erp-stable.yaml
|
|
||||||
|
|
||||||
ERPNext Latest Version Develop
|
|
||||||
distrobuilder build-incus -o image.architecture=amd64 -o image.release=edge erp-latest.yaml
|
|
||||||
|
|
||||||
# Image Import
|
# Image Import
|
||||||
incus image import incus.tar.xz rootfs.squashfs --alias jeyerp-develop --reuse
|
incus image import incus.tar.xz rootfs.squashfs --alias erp
|
||||||
|
|
||||||
incus image import incus.tar.xz rootfs.squashfs --alias jeyerp --reuse
|
|
||||||
|
|
||||||
incus image import incus.tar.xz rootfs.squashfs --alias erp-develop --reuse
|
|
||||||
|
|
||||||
incus image import incus.tar.xz rootfs.squashfs --alias erp --reuse
|
|
||||||
787
erp-develop.yaml
787
erp-develop.yaml
|
|
@ -1,787 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://mirror.csclub.uwaterloo.ca/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules=sd-mod,usb-storage,{{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- build-base
|
|
||||||
- pkgconf
|
|
||||||
- tzdata
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.18
|
|
||||||
- 3.19
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- gcc
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
- udev
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- redis
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- python3-dev
|
|
||||||
- py3-setuptools
|
|
||||||
- py3-pip
|
|
||||||
- py3-distutils-extra
|
|
||||||
- py3-virtualenv
|
|
||||||
- uv
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - python3
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- nano
|
|
||||||
- linux-headers
|
|
||||||
- ansible
|
|
||||||
- fail2ban
|
|
||||||
- bash
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - dependencies
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nginx
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /frontend/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*\.(htm|html|svg|xml)$ {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mariadb-secure-installation <<EOF
|
|
||||||
|
|
||||||
y
|
|
||||||
y
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
EOF
|
|
||||||
echo "MariaDB password is: $DISTROBUILDER_ROOT_UUID"
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv pip install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
|
||||||
# Install Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Builds JS and CSS, and then migrates
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench build --force && uvx --from frappe-bench bench migrate'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - gunicorn
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev udev udev-settle udev-trigger; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# Attempt to correct errors in the installation of all packages.
|
|
||||||
apk fix
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
808
erp-latest.yaml
808
erp-latest.yaml
|
|
@ -1,808 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules={{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- doas
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- 3.22
|
|
||||||
- 3.23
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- tiny-cloud-incus
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- redis
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
# - python3-dev
|
|
||||||
# - py3-setuptools
|
|
||||||
# - py3-pip
|
|
||||||
# - py3-distutils-extra
|
|
||||||
# - py3-virtualenv
|
|
||||||
- uv
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - python3
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- nano
|
|
||||||
- linux-headers
|
|
||||||
- ansible
|
|
||||||
- fail2ban
|
|
||||||
- bash
|
|
||||||
- tzdata
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - dependencies
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nginx
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
printf "disable_trigger=1\n" > /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /frontend/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*\.(htm|html|svg|xml)$ {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mariadb-secure-installation <<EOF
|
|
||||||
|
|
||||||
y
|
|
||||||
y
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
EOF
|
|
||||||
echo "MariaDB password is: $DISTROBUILDER_ROOT_UUID"
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv python install'
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv tool install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
|
||||||
# Install Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - gunicorn
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /boot/grub
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# re-enable grub trigger for future grub updates
|
|
||||||
rm /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
tiny-cloud --enable
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
780
erp-stable.yaml
780
erp-stable.yaml
|
|
@ -1,780 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://mirror.csclub.uwaterloo.ca/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules={{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- doas
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- 3.22
|
|
||||||
- 3.23
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- tiny-cloud-incus
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
- redis
|
|
||||||
- uv
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- linux-headers
|
|
||||||
- bash
|
|
||||||
- tzdata
|
|
||||||
- nginx
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
- chromium-headless-shell
|
|
||||||
action: install
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
printf "disable_trigger=1\n" > /etc/update-grub.conf
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
addgroup -S -g 1001 mysql 2>/dev/null
|
|
||||||
adduser -S -D -H -u 1001 -G mysql -h /var/lib/mysql -s /sbin/nologin mysql 2>/dev/null
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name $host;
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /$host/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*.(htm|html|svg|xml) {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /$host/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /$host/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
# text/html is always compressed by HttpGzipModule
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin';"
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv python install 3.14 --default'
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv tool install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=version-16 --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g chromium_path /usr/bin/chromium-headless-shell'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-16 --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-16 hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password=admin --install-app erpnext --set-default frontend'
|
|
||||||
# Install HRMS App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Migrates and Builds
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate && uvx --from frappe-bench bench build'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Scheduler
|
|
||||||
cat << 'EOF' > /etc/init.d/scheduler
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name="scheduler"
|
|
||||||
description="frappe-bench-scheduler"
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench schedule"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/scheduler.log -2 /home/frappe/frappe-bench/logs/scheduler.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx default
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# Runlevel SocketIO
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
# Runlevel Gunicorn
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
# Service Frappe Queue Long
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
# Service Frappe Queue Short
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
# Service Frappe Bench Scheduler
|
|
||||||
chmod +x /etc/init.d/scheduler
|
|
||||||
rc-update add scheduler default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /boot/grub
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# re-enable grub trigger for future grub updates
|
|
||||||
rm /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
tiny-cloud --enable
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
|
|
@ -1,825 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules={{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- doas
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- 3.22
|
|
||||||
- 3.23
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- tiny-cloud-incus
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- redis
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
# - python3-dev
|
|
||||||
# - py3-setuptools
|
|
||||||
# - py3-pip
|
|
||||||
# - py3-distutils-extra
|
|
||||||
# - py3-virtualenv
|
|
||||||
- uv
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - python3
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- nano
|
|
||||||
- linux-headers
|
|
||||||
- ansible
|
|
||||||
- fail2ban
|
|
||||||
- bash
|
|
||||||
- tzdata
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - dependencies
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nginx
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
printf "disable_trigger=1\n" > /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /frontend/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*\.(htm|html|svg|xml)$ {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mariadb-secure-installation <<EOF
|
|
||||||
|
|
||||||
y
|
|
||||||
y
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
EOF
|
|
||||||
echo "MariaDB password is: $DISTROBUILDER_ROOT_UUID"
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv python install'
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv tool install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
|
||||||
# Install Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Download Jey ERP Apps
|
|
||||||
# su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate-csv-to-po'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/custom_subtabs.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/az_locale.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/invoice_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/taxes_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/formula_editor.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_erp.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/kapital_bank.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_theme.git'
|
|
||||||
# Install Jey ERP Subtabs App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app custom_subtabs'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench execute custom_subtabs.patches.add_parent_field.add_field_to_docfield_json'
|
|
||||||
# Install Jey ERP Apps
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app az_locale invoice_az taxes_az formula_editor jey_erp kapital_bank jey_theme'
|
|
||||||
# Builds JS and CSS, and then migrates
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate && uvx --from frappe-bench bench build'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - gunicorn
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /boot/grub
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# re-enable grub trigger for future grub updates
|
|
||||||
rm /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
tiny-cloud --enable
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
|
|
@ -1,802 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://mirror.csclub.uwaterloo.ca/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules=sd-mod,usb-storage,{{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- build-base
|
|
||||||
- pkgconf
|
|
||||||
- tzdata
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.18
|
|
||||||
- 3.19
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- gcc
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
- udev
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- redis
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- python3-dev
|
|
||||||
- py3-setuptools
|
|
||||||
- py3-pip
|
|
||||||
- py3-distutils-extra
|
|
||||||
- py3-virtualenv
|
|
||||||
- uv
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - python3
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- nano
|
|
||||||
- linux-headers
|
|
||||||
- ansible
|
|
||||||
- fail2ban
|
|
||||||
- bash
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - dependencies
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nginx
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /frontend/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*\.(htm|html|svg|xml)$ {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mariadb-secure-installation <<EOF
|
|
||||||
|
|
||||||
y
|
|
||||||
y
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
EOF
|
|
||||||
echo "MariaDB password is: $DISTROBUILDER_ROOT_UUID"
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv pip install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
|
||||||
# Install Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Download Jey ERP Apps
|
|
||||||
# su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate-csv-to-po'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/custom_subtabs.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/az_locale.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/invoice_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/taxes_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/formula_editor.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_erp.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/kapital_bank.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_theme.git'
|
|
||||||
# Install Jey ERP Subtabs App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app custom_subtabs'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench execute custom_subtabs.patches.add_parent_field.add_field_to_docfield_json'
|
|
||||||
# Install Jey ERP Apps
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app az_locale invoice_az taxes_az formula_editor jey_erp kapital_bank jey_theme'
|
|
||||||
# Builds JS and CSS, and then migrates
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench build --force && uvx --from frappe-bench bench migrate'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - gunicorn
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev udev udev-settle udev-trigger; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# Attempt to correct errors in the installation of all packages.
|
|
||||||
apk fix
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
|
|
@ -1,825 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules={{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- doas
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- 3.22
|
|
||||||
- 3.23
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- tiny-cloud-incus
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- redis
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
# - python3-dev
|
|
||||||
# - py3-setuptools
|
|
||||||
# - py3-pip
|
|
||||||
# - py3-distutils-extra
|
|
||||||
# - py3-virtualenv
|
|
||||||
- uv
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - python3
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- nano
|
|
||||||
- linux-headers
|
|
||||||
- ansible
|
|
||||||
- fail2ban
|
|
||||||
- bash
|
|
||||||
- tzdata
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - dependencies
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nginx
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
action: install
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
printf "disable_trigger=1\n" > /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /frontend/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*\.(htm|html|svg|xml)$ {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /frontend/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host frontend;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx
|
|
||||||
# variants:
|
|
||||||
# - nginx
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mariadb-secure-installation <<EOF
|
|
||||||
|
|
||||||
y
|
|
||||||
y
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
$DISTROBUILDER_ROOT_UUID
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
y
|
|
||||||
EOF
|
|
||||||
echo "MariaDB password is: $DISTROBUILDER_ROOT_UUID"
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# variants:
|
|
||||||
# - mariadb
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv python install'
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv tool install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://localhost:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
|
||||||
# Install Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Download Jey ERP Apps
|
|
||||||
# su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate-csv-to-po'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/custom_subtabs.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/az_locale.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/invoice_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/taxes_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/formula_editor.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_erp.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/kapital_bank.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_theme.git'
|
|
||||||
# Install Jey ERP Subtabs App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app custom_subtabs'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench execute custom_subtabs.patches.add_parent_field.add_field_to_docfield_json'
|
|
||||||
# Install Jey ERP Apps
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app az_locale invoice_az taxes_az formula_editor jey_erp kapital_bank jey_theme'
|
|
||||||
# Builds JS and CSS, and then migrates
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate && uvx --from frappe-bench bench build'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
variants:
|
|
||||||
# - redis
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - nodejs
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
|
|
||||||
# variants:
|
|
||||||
# - gunicorn
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /boot/grub
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# re-enable grub trigger for future grub updates
|
|
||||||
rm /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
tiny-cloud --enable
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
|
|
@ -1,798 +0,0 @@
|
||||||
image:
|
|
||||||
distribution: "alpinelinux"
|
|
||||||
|
|
||||||
source:
|
|
||||||
downloader: alpinelinux-http
|
|
||||||
same_as: 3.12
|
|
||||||
url: https://mirror.csclub.uwaterloo.ca/alpine/
|
|
||||||
keys:
|
|
||||||
# 0482D84022F52DF1C4E7CD43293ACD0907D9495A
|
|
||||||
- |-
|
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
bcgRRcklNr8mTzJH
|
|
||||||
=ckew
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
targets:
|
|
||||||
lxc:
|
|
||||||
create_message: |
|
|
||||||
You just created an {{ image.description }} container.
|
|
||||||
|
|
||||||
config:
|
|
||||||
- type: all
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.common.conf
|
|
||||||
- type: user
|
|
||||||
before: 5
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/alpine.userns.conf
|
|
||||||
- type: all
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/common.conf
|
|
||||||
- type: user
|
|
||||||
after: 4
|
|
||||||
content: |-
|
|
||||||
lxc.include = LXC_TEMPLATE_CONFIG/userns.conf
|
|
||||||
- type: all
|
|
||||||
content: |-
|
|
||||||
lxc.arch = {{ image.architecture_personality }}
|
|
||||||
incus:
|
|
||||||
vm:
|
|
||||||
filesystem: ext4
|
|
||||||
|
|
||||||
files:
|
|
||||||
- path: /etc/hostname
|
|
||||||
generator: hostname
|
|
||||||
|
|
||||||
- path: /etc/hosts
|
|
||||||
generator: hosts
|
|
||||||
|
|
||||||
- generator: fstab
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- generator: incus-agent
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/default/grub
|
|
||||||
generator: dump
|
|
||||||
pongo: true
|
|
||||||
content: |-
|
|
||||||
# Set the recordfail timeout
|
|
||||||
GRUB_RECORDFAIL_TIMEOUT=0
|
|
||||||
|
|
||||||
# Do not wait on grub prompt
|
|
||||||
GRUB_TIMEOUT=0
|
|
||||||
|
|
||||||
# Set the default commandline
|
|
||||||
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 modules={{ targets.incus.vm.filesystem }} rootfstype={{ targets.incus.vm.filesystem }}"
|
|
||||||
|
|
||||||
# Set the grub console type
|
|
||||||
GRUB_TERMINAL=console
|
|
||||||
|
|
||||||
# Disable os-prober
|
|
||||||
GRUB_DISABLE_OS_PROBER=true
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- path: /etc/network/interfaces
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: dump
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
tty1::respawn:/sbin/getty 38400 tty1
|
|
||||||
tty2::respawn:/sbin/getty 38400 tty2
|
|
||||||
tty3::respawn:/sbin/getty 38400 tty3
|
|
||||||
tty4::respawn:/sbin/getty 38400 tty4
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- path: /etc/inittab
|
|
||||||
generator: template
|
|
||||||
name: inittab
|
|
||||||
content: |-
|
|
||||||
# /etc/inittab
|
|
||||||
::sysinit:/sbin/openrc sysinit
|
|
||||||
::sysinit:/sbin/openrc boot
|
|
||||||
::wait:/sbin/openrc default
|
|
||||||
|
|
||||||
# Set up a couple of getty's
|
|
||||||
::respawn:/sbin/getty 38400 console
|
|
||||||
|
|
||||||
# Stuff to do for the 3-finger salute
|
|
||||||
::ctrlaltdel:/sbin/reboot
|
|
||||||
|
|
||||||
# Stuff to do before rebooting
|
|
||||||
::shutdown:/sbin/openrc shutdown
|
|
||||||
|
|
||||||
- name: meta-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: network-config
|
|
||||||
generator: cloud-init
|
|
||||||
content: |-
|
|
||||||
version: 1
|
|
||||||
config:
|
|
||||||
- type: physical
|
|
||||||
name: eth0
|
|
||||||
subnets:
|
|
||||||
- type: dhcp
|
|
||||||
control: auto
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: user-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- name: vendor-data
|
|
||||||
generator: cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
packages:
|
|
||||||
manager: apk
|
|
||||||
update: true
|
|
||||||
cleanup: true
|
|
||||||
sets:
|
|
||||||
- packages:
|
|
||||||
- alpine-base
|
|
||||||
- logrotate
|
|
||||||
- doas
|
|
||||||
action: install
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- cloud-init
|
|
||||||
- e2fsprogs-extra
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- py3-pyserial
|
|
||||||
- py3-netifaces
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
releases:
|
|
||||||
- 3.20
|
|
||||||
- 3.21
|
|
||||||
- 3.22
|
|
||||||
- 3.23
|
|
||||||
- edge
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- acpi
|
|
||||||
- grub-efi
|
|
||||||
- linux-virt
|
|
||||||
action: install
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- tiny-cloud-incus
|
|
||||||
action: install
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
- packages:
|
|
||||||
- mariadb
|
|
||||||
- mariadb-client
|
|
||||||
- mariadb-connector-c-dev
|
|
||||||
- mariadb-dev
|
|
||||||
- redis
|
|
||||||
- uv
|
|
||||||
- alpine-sdk
|
|
||||||
- cronie
|
|
||||||
- curl
|
|
||||||
- wget
|
|
||||||
- linux-headers
|
|
||||||
- bash
|
|
||||||
- tzdata
|
|
||||||
- nginx
|
|
||||||
- nodejs
|
|
||||||
- npm
|
|
||||||
- yarn
|
|
||||||
- chromium-headless-shell
|
|
||||||
action: install
|
|
||||||
|
|
||||||
actions:
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
printf "disable_trigger=1\n" > /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
rm -f /var/cache/apk/*
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Rewrite configuration for LXC
|
|
||||||
sed -i 's/#rc_sys=""/rc_sys="lxc"/' /etc/rc.conf
|
|
||||||
|
|
||||||
# Honor fstab by not making the localmount script a noop
|
|
||||||
sed -i 's/-lxc//' /etc/init.d/localmount
|
|
||||||
|
|
||||||
# Enable services
|
|
||||||
for svc_name in bootmisc syslog devfs; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in networking crond; do
|
|
||||||
ln -s /etc/init.d/${svc_name} /etc/runlevels/default/${svc_name}
|
|
||||||
done
|
|
||||||
types:
|
|
||||||
- container
|
|
||||||
|
|
||||||
- trigger: post-unpack
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
addgroup -S -g 1001 mysql 2>/dev/null
|
|
||||||
adduser -S -D -H -u 1001 -G mysql -h /var/lib/mysql -s /sbin/nologin mysql 2>/dev/null
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-user frappe
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure Nginx for Frappe
|
|
||||||
cat << 'EOF' > /etc/nginx/http.d/default.conf
|
|
||||||
upstream backend-server {
|
|
||||||
server 127.0.0.1:8000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
upstream socketio-server {
|
|
||||||
server 127.0.0.1:9000 fail_timeout=0;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name $host;
|
|
||||||
root /home/frappe/frappe-bench/sites;
|
|
||||||
|
|
||||||
proxy_buffer_size 128k;
|
|
||||||
proxy_buffers 4 256k;
|
|
||||||
proxy_busy_buffers_size 256k;
|
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
|
||||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
|
|
||||||
add_header X-Content-Type-Options nosniff;
|
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
|
||||||
add_header Referrer-Policy "same-origin, strict-origin-when-cross-origin";
|
|
||||||
|
|
||||||
set_real_ip_from 127.0.0.1;
|
|
||||||
real_ip_header X-Forwarded-For;
|
|
||||||
real_ip_recursive off;
|
|
||||||
|
|
||||||
location /assets {
|
|
||||||
try_files $uri =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/protected/(.*) {
|
|
||||||
internal;
|
|
||||||
try_files /$host/$1 =404;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /socket.io {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Origin $scheme://$http_host;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
|
|
||||||
proxy_pass http://socketio-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
rewrite ^(.+)/$ $1 permanent;
|
|
||||||
rewrite ^(.+)/index\.html$ $1 permanent;
|
|
||||||
rewrite ^(.+)\.html$ $1 permanent;
|
|
||||||
|
|
||||||
location ~ ^/files/.*.(htm|html|svg|xml) {
|
|
||||||
add_header Content-disposition "attachment";
|
|
||||||
try_files /$host/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
try_files /$host/public/$uri @webserver;
|
|
||||||
}
|
|
||||||
|
|
||||||
location @webserver {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Frappe-Site-Name frontend;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Use-X-Accel-Redirect True;
|
|
||||||
proxy_read_timeout 120;
|
|
||||||
proxy_redirect off;
|
|
||||||
|
|
||||||
proxy_pass http://backend-server;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
keepalive_timeout 15;
|
|
||||||
client_max_body_size 50m;
|
|
||||||
client_body_buffer_size 16K;
|
|
||||||
client_header_buffer_size 1k;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
gzip_comp_level 5;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_types
|
|
||||||
application/atom+xml
|
|
||||||
application/javascript
|
|
||||||
application/json
|
|
||||||
application/rss+xml
|
|
||||||
application/vnd.ms-fontobject
|
|
||||||
application/x-font-ttf
|
|
||||||
application/font-woff
|
|
||||||
application/x-web-app-manifest+json
|
|
||||||
application/xhtml+xml
|
|
||||||
application/xml
|
|
||||||
font/opentype
|
|
||||||
image/svg+xml
|
|
||||||
image/x-icon
|
|
||||||
text/css
|
|
||||||
text/plain
|
|
||||||
text/x-component;
|
|
||||||
# text/html is always compressed by HttpGzipModule
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Configure MariaDB for Frappe
|
|
||||||
sed -i 's/^\(skip-networking\)/#\1/' /etc/my.cnf.d/mariadb-server.cnf
|
|
||||||
cat << EOF > /etc/my.cnf.d/99-frappe.cnf
|
|
||||||
[mysqld]
|
|
||||||
character-set-client-handshake = FALSE
|
|
||||||
character-set-server = utf8mb4
|
|
||||||
collation-server = utf8mb4_unicode_ci
|
|
||||||
|
|
||||||
[mysql]
|
|
||||||
default-character-set = utf8mb4
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Service MariaDB
|
|
||||||
mkdir -p /run/openrc
|
|
||||||
touch /run/openrc/softlevel
|
|
||||||
|
|
||||||
# Setup MariaDB
|
|
||||||
/etc/init.d/mariadb setup
|
|
||||||
|
|
||||||
# Starting MariaDB
|
|
||||||
nohup mariadbd-safe >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for MariaDB to Start..."
|
|
||||||
while [ ! -S /run/mysqld/mysqld.sock ]; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
|
|
||||||
# Initialize MariaDB
|
|
||||||
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin';"
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Install Frappe Bench
|
|
||||||
su frappe -c 'cd /home/frappe && uv python install 3.14 --default'
|
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
|
||||||
su frappe -c 'cd /home/frappe && uv tool install frappe-bench'
|
|
||||||
# Initialize Bench
|
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=version-16 --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
|
||||||
# Change User Directory Permissions
|
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
|
||||||
# Setup Redis Config
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_cache redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_queue redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g redis_socketio redis://127.0.0.1:6379'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -gp socketio_port 9000'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench set-config -g chromium_path /usr/bin/chromium-headless-shell'
|
|
||||||
# Starting Redis
|
|
||||||
nohup redis-server >/dev/null 2>&1 &
|
|
||||||
echo "Waiting for Redis to Start..."
|
|
||||||
while ! redis-cli ping >/dev/null 2>&1; do
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
# Download a Standard App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-16 --resolve-deps erpnext https://github.com/frappe/erpnext'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-16 hrms https://github.com/frappe/hrms'
|
|
||||||
# Create a New Site
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password=admin --install-app erpnext --set-default frontend'
|
|
||||||
# Install HRMS App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app hrms'
|
|
||||||
# Download Jey ERP Apps
|
|
||||||
# su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate-csv-to-po'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/custom_subtabs.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/az_locale.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/invoice_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/taxes_az.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/formula_editor.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_erp.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/kapital_bank.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_theme.git'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app https://git.host.jeyerp.az/ali/jey_wizard.git'
|
|
||||||
# Install Jey ERP Subtabs App
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app custom_subtabs'
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench execute custom_subtabs.patches.add_parent_field.add_field_to_docfield_json'
|
|
||||||
# Install Jey ERP Apps
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench install-app az_locale invoice_az taxes_az formula_editor jey_erp kapital_bank jey_theme jey_wizard'
|
|
||||||
# Builds JS and CSS, and then migrates
|
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench migrate && uvx --from frappe-bench bench build'
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service NodeJS
|
|
||||||
cat << EOF > /etc/init.d/node
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=node
|
|
||||||
description=""frappe-bench-node-socketio""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/node"
|
|
||||||
command_args="/home/frappe/frappe-bench/apps/frappe/socketio.js"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/node-socketio.log -2 /home/frappe/frappe-bench/logs/node-socketio.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Gunicorn
|
|
||||||
cat << EOF > /etc/init.d/gunicorn
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=gunicorn
|
|
||||||
description=""frappe-bench-frappe-web""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/home/frappe/frappe-bench/env/bin/gunicorn"
|
|
||||||
command_args="--chdir=/home/frappe/frappe-bench/sites --bind=0.0.0.0:8000 --threads=4 --workers=2 --worker-class=gthread --worker-tmp-dir=/dev/shm --timeout=120 --preload frappe.app:application"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench/sites -1 /home/frappe/frappe-bench/logs/web.log -2 /home/frappe/frappe-bench/logs/web.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-long
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-long
|
|
||||||
description=""frappe-bench-frappe-long-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue long,default,short"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Workers
|
|
||||||
cat << EOF > /etc/init.d/queue-short
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name=queue-short
|
|
||||||
description=""frappe-bench-frappe-short-worker""
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench worker --queue short,default"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/worker.log -2 /home/frappe/frappe-bench/logs/worker.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Service Frappe Bench Scheduler
|
|
||||||
cat << 'EOF' > /etc/init.d/scheduler
|
|
||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
name="scheduler"
|
|
||||||
description="frappe-bench-scheduler"
|
|
||||||
supervisor="supervise-daemon"
|
|
||||||
command="/usr/bin/uvx"
|
|
||||||
command_args="--from frappe-bench bench schedule"
|
|
||||||
supervise_daemon_args=" -d /home/frappe/frappe-bench -1 /home/frappe/frappe-bench/logs/scheduler.log -2 /home/frappe/frappe-bench/logs/scheduler.error.log"
|
|
||||||
command_user="frappe:frappe"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- trigger: post-packages
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Runlevel Redis
|
|
||||||
rc-update add redis default
|
|
||||||
# Runlevel Nginx
|
|
||||||
rc-update add nginx default
|
|
||||||
# Runlevel MariaDB
|
|
||||||
rc-update add mariadb default
|
|
||||||
# Runlevel SocketIO
|
|
||||||
chmod +x /etc/init.d/node
|
|
||||||
rc-update add node default
|
|
||||||
# Runlevel Gunicorn
|
|
||||||
chmod +x /etc/init.d/gunicorn
|
|
||||||
rc-update add gunicorn default
|
|
||||||
# Service Frappe Queue Long
|
|
||||||
chmod +x /etc/init.d/queue-long
|
|
||||||
rc-update add queue-long default
|
|
||||||
# Service Frappe Queue Short
|
|
||||||
chmod +x /etc/init.d/queue-short
|
|
||||||
rc-update add queue-short default
|
|
||||||
# Service Frappe Bench Scheduler
|
|
||||||
chmod +x /etc/init.d/scheduler
|
|
||||||
rc-update add scheduler default
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
for svc_name in acpid bootmisc hostname hwclock loadkmap modules networking swap sysctl syslog urandom; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/boot/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
for svc_name in devfs dmesg hwdrivers mdev; do
|
|
||||||
ln -fs /etc/init.d/${svc_name} /etc/runlevels/sysinit/${svc_name}
|
|
||||||
done
|
|
||||||
|
|
||||||
mkdir -p /boot/grub
|
|
||||||
target=/boot/grub/grub.cfg
|
|
||||||
grub-mkconfig -o "${target}"
|
|
||||||
sed -i "s#root=[^ ]*#root=${DISTROBUILDER_ROOT_UUID}#g" "${target}"
|
|
||||||
|
|
||||||
TARGET="x86_64"
|
|
||||||
[ "$(uname -m)" = "aarch64" ] && TARGET="arm64"
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram --removable
|
|
||||||
grub-install --target=${TARGET}-efi --no-nvram
|
|
||||||
|
|
||||||
# re-enable grub trigger for future grub updates
|
|
||||||
rm /etc/update-grub.conf
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
# Tweak to prevent cloud-init from getting stuck.
|
|
||||||
echo "datasource_list: ['NoCloud', 'ConfigDrive', 'LXD', 'None']" > /etc/cloud/cloud.cfg.d/99_lxc.cfg
|
|
||||||
types:
|
|
||||||
- vm
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
setup-cloud-init
|
|
||||||
variants:
|
|
||||||
- cloud
|
|
||||||
|
|
||||||
- trigger: post-files
|
|
||||||
action: |-
|
|
||||||
#!/bin/sh
|
|
||||||
set -eux
|
|
||||||
|
|
||||||
tiny-cloud --enable
|
|
||||||
variants:
|
|
||||||
- tinycloud
|
|
||||||
|
|
||||||
mappings:
|
|
||||||
architecture_map: alpinelinux
|
|
||||||
|
|
@ -607,7 +607,7 @@ actions:
|
||||||
su frappe -c 'cd /home/frappe && uv venv'
|
su frappe -c 'cd /home/frappe && uv venv'
|
||||||
su frappe -c 'cd /home/frappe && uv pip install frappe-bench'
|
su frappe -c 'cd /home/frappe && uv pip install frappe-bench'
|
||||||
# Initialize Bench
|
# Initialize Bench
|
||||||
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=version-15 --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
su frappe -c 'uvx --from frappe-bench bench init --frappe-branch=develop --frappe-path=https://github.com/frappe/frappe --no-procfile --no-backups --skip-redis-config-generation --verbose /home/frappe/frappe-bench'
|
||||||
# Change User Directory Permissions
|
# Change User Directory Permissions
|
||||||
su frappe -c 'chmod -R o+rx /home/frappe'
|
su frappe -c 'chmod -R o+rx /home/frappe'
|
||||||
# Setup Redis Config
|
# Setup Redis Config
|
||||||
|
|
@ -622,8 +622,8 @@ actions:
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
# Download a Standard App
|
# Download a Standard App
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-15 --resolve-deps erpnext https://github.com/frappe/erpnext'
|
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop --resolve-deps erpnext https://github.com/frappe/erpnext'
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=version-15 hrms https://github.com/frappe/hrms'
|
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench get-app --branch=develop hrms https://github.com/frappe/hrms'
|
||||||
# Create a New Site
|
# Create a New Site
|
||||||
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
su frappe -c 'cd /home/frappe/frappe-bench && uvx --from frappe-bench bench new-site --admin-password=admin --db-root-username=root --db-root-password="${DISTROBUILDER_ROOT_UUID}" --install-app erpnext --set-default frontend'
|
||||||
# Install Standard App
|
# Install Standard App
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue