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