weechat- me personal weechat setup 🔵🟢 |
git clone git://git.acid.vegas/weechat.git |
Log | Files | Refs | Archive | README |
setup.sh (4430B)
1 #!/bin/bash 2 # Weechat Incus Container Setup Script - Developed by acidvegas (https://git.acid.vegas/weechat) 3 4 set -xev 5 6 create_container() { 7 incus storage create weechat-pool dir 8 incus launch images:debian/12 weechat-container -s weechat-pool 9 incus config set weechat-container boot.autostart true 10 sleep 10 11 incus exec weechat-container -- apt update -y 12 incus exec weechat-container -- apt upgrade -y 13 incus exec weechat-container -- apt install -y git nano nattended-upgrades wget 14 incus exec weechat-container -- useradd -m -s /bin/bash agent 15 incus exec weechat-container -- journalctl --vacuum-time=1d 16 incus exec weechat-container -- sh -c 'printf "[Journal]\nStorage=volatile\nSplitMode=none\nRuntimeMaxUse=500K\n" > /etc/systemd/journald.conf' 17 incus exec weechat-container -- systemctl restart systemd-journald 18 incus exec weechat-container -- bash -c "echo 'TERM=xterm-256color' >> /etc/environment" 19 incus config set weechat-container boot.autostart true 20 } 21 22 23 install_weechat() { 24 incus exec weechat-container -- apt install -y ca-certificates 25 incus exec weechat-container -- mkdir -p /etc/apt/keyrings 26 incus exec weechat-container -- bash -c "curl --silent https://weechat.org/dev/info/debian_repository_signing_key_asc/ > /etc/apt/keyrings/weechat.asc" 27 incus exec weechat-container -- bash -c "echo 'deb [arch=amd64,i386,arm64,armhf signed-by=/etc/apt/keyrings/weechat.asc] https://weechat.org/debian bookworm main' > /etc/apt/sources.list.d/weechat.list" 28 incus exec weechat-container -- bash -c "echo 'deb-src [arch=amd64,i386,arm64,armhf signed-by=/etc/apt/keyrings/weechat.asc] https://weechat.org/debian bookworm main' >> /etc/apt/sources.list.d/weechat.list" 29 incus exec weechat-container -- apt update 30 incus exec weechat-container -- apt install -y screen weechat-curses weechat-plugins weechat-python weechat-perl 31 } 32 33 34 configure_weechat() { 35 incus exec weechat-container -- su - agent -c "weechat -P 'alias,buflist,charset,exec,fifo,fset,irc,logger,perl,python,relay,script,trigger,typing' -r '/set weechat.plugin.autoload alias,buflist,charset,exec,fifo,fset,irc,logger,perl,python,relay,script,trigger,typing;/save;/quit'" 36 incus exec weechat-container -- su - agent -c "mkdir /home/agent/.config/weechat/tls" 37 incus exec weechat-container -- su - agent -c "git clone --depth 1 https://github.com/acidvegas/weechat.git /home/agent/weechat" 38 incus exec weechat-container -- su - agent -c "mv /home/agent/weechat/assets/alias.conf /home/agent/.config/weechat/alias.conf && mv /home/agent/weechat/assets/scripts/perl/*.pl /home/agent/.local/share/weechat/perl/autoload/ && mv /home/agent/weechat/assets/scripts/python/*.py /home/agent/.local/share/weechat/python/autoload/ && rm -rf /home/agent/weechat" 39 incus exec weechat-container -- su - agent -c "mkdir /home/agent/.local/share/weechat/logs" 40 incus exec weechat-container -- su - agent -c "mkfifo /home/agent/.local/share/weechat/FIFO" 41 incus exec weechat-container -- bash -c "git clone https://github.com/tat3r/tdfiglet.git && cd tdfiglet && make && sudo make install && cd && rm -rf tdfiglet" 42 } 43 44 45 configure_relay() { 46 RELAY_PORT=2222 47 RELAY_DOMAIN=big.dick.acid.vegas 48 CONTAINER_IP=$(incus list | grep weechat-container | awk '{print $6}') 49 50 incus config device add weechat-container weechat-certbot-port proxy listen=tcp:0.0.0.0:$RELAY_PORT connect=tcp:$CONTAINER_IP:$RELAY_PORT 51 incus config device add weechat-container weechat-relay-port proxy listen=tcp:0.0.0.0:80 connect=tcp:$CONTAINER_IP:80 52 53 incus file push assets/renew weechat-container/home/agent/.local/share/weechat/renew 54 incus exec weechat-container -- chown agent:agent /home/agent/.local/share/weechat/renew 55 incus exec weechat-container -- chmod +x /home/agent/.local/share/weechat/renew 56 57 incus exec weechat-container -- apt install -y certbot 58 incus exec weechat-container -- certbot certonly --standalone -d $RELAY_DOMAIN -m nobody@noname.gov 59 incus file push assets/certbot.service weechat-container/etc/systemd/system/certbot.service 60 incus file push assets/certbot.timer weechat-container/etc/systemd/system/certbot.timer 61 incus exec weechat-container -- systemctl enable certbot.timer && incus exec weechat-container -- systemctl start certbot.timer 62 } 63 64 create_container && install_weechat && configure_weechat && configure_relay