Homepage

Ahmad Hadidi Ahmad Hadidi

Host

ISO: Alpine 3.18
Disk Size: 3GB
Ram: 2048
Cores: 4
don't forget to resize / shrink after you're done building homepage
make sure it's unprivileged

Create CT

pct create \
103 \
/mnt/pve/evo/template/cache/alpine-3.18-default_20230607_amd64.tar.xz \
--hostname homepage \
--memory 2048 \
--net0 name=eth0,bridge=vmbr0,firewall=1,gw=192.168.0.1,ip=192.168.0.103/24,hwaddr=DE:AD:DE:AD:01:03,type=veth,ip6=dhcp \
--storage localblock \
--rootfs local-lvm:3 \
--unprivileged 1 \
--ignore-unpack-errors \
--ostype alpine \
--password="123123123" \
--start 1

Enter CT

echo "mp0: /mnt/pve/evo/template_config/homepage,mp=/opt/homepage/config" >> /etc/pve/lxc/103.conf
pct enter 103

# Request IP Address From Router
udhcpc -i eth0 -F $(hostname) -x hostname:$(hostname) -r $(hostname -i)

In CT

apk add nodejs git make g++ gcc curl
apk add --update npm
curl -L https://unpkg.com/@pnpm/self-installer | node
cd /opt
git clone https://github.com/benphelps/homepage.git
cd /opt/homepage
mkdir -p config
# Only use this line below if you want to start fresh
# cp /opt/homepage/src/skeleton/* /opt/homepage/config
pnpm install
pnpm build

![[Configs & Resources/Linux/Common/Alpine#Enable DHCP Leasing - Alpine]]

Add to boot

echo -e "\
cd /opt/homepage
pnpm start" >> /start.sh
chmod +x /start.sh # make it executable

Homepage Service

echo -e "\
#!/sbin/openrc-run

name=homepage
description=\"Homepage daemon\"
command=\"sh ./start.sh\"
command_background=true
pidfile=\"/run/\$name.pid\"
# output_log=\"/var/log/homepage/output.log\"
# error_log=\"/var/log/homepage/error.log\"

depend() {
        need net
        use dns logger netmount
}
" >> /etc/init.d/homepage
chmod +x /etc/init.d/homepage
rc-update add homepage 
service homepage start
Ref

Expose config to Samba

we do this so that we can access the config data from HO3 via a mapped network drive.
cd /opt/homepage
cp config config_bak
rm -rf config

# bind mount from pve
nano /etc/pve/lxc/103.conf
mp0: /mnt/pve/evo/template_config/homepage,mp=/opt/homepage/config
pct reboot 103

cd /opt/homepage
chown 100000:100000 config
cp config_bak/* config

Add to Init.D

chmod +x /etc/init.d/homepage
rc-update add homepage 
service homepage start

Let's get started

cd /opt/homepage/config

# backup to blow up however we like
cp bookmarks.yaml bookmarks.bak
cp services.yaml services.bak
cp settings.yaml settings.bak
cp widgets.yaml widgets.bak

nano opt/homepage/config/services.yaml

Go crazy


CustomAPI - F1 Widget · gethomepage/homepage · Discussion #3412 · GitHub