3475510b410de627be8eb335e4b0fe0db1c90f74
Scripts for building containers for the Proxmox home server
Inital Setup
The fist step is to build the containers needed for building all other containers. This can be done on a Minimal debian CT (make sure to enable nesting) on the new proxmox server or any other debian install
- Clone this repo
- cd in to cloned repo
- run
bash Scripts/FirstSetup.sh, to genate the container images - upload the
Debian-imgbuilder.tar.xzto the proxmox server and create a privileged container - Follow the steps under Container Setup > imgbuilder
- Upload the
Debian-Jenkins.tar.xzto the proxmox server and create a container - Follow the steps under Container Setup > Jenkins
List of containers
| Name | Distro | Description |
|---|---|---|
| minimal | All | Minimal installed packages |
| default | All | ssh-server and nano packages |
| jenkins | Debian | Jenkins server |
| jenkinsBuilder | Debian | Basic node for Jenkins |
| imgbuilder | Debian | LXC template builder node for Jenkins |
| mysql | Debian | Mysql server with PhpMyadmin |
| pihole | Debian | Pihole CT |
| colabora | Debian | ColaboraOffice WebService (CODE version) |
| jellyfin | Debian | Jellyfin in-home streaming server |
| gitea | Alpine | Gitea server |
| nginx | Alpine | Nginx server for reverse-proxy use |
| ddns | Alpine | DDNS client configured for OVH/OVH-Cloud |
TODO
Domoticz Hass+Mqtt Z2mqtt+zw2mqtt SMB iSCSI
Nextcloud
AptCacherNG NodeRed Omada Unifi Docker
MailBackup* FileShelter/transfer.sh WS(x2go-xfce)
Container Setup
imgbuilder
This container shoud be set up as privileged
- Enable features: Fuse, Nesting and 'Create Device Nodes'
- Add a mountpoint to /LXCBuild on a accesable place for the Proxmox Server
- Add this location to datastore for LXC templates to Proxmox
- Set the
jenkinsuser password usingpasswd jenkinsin the container - Create folders on mountpoint using
mkdir /LXCBuild/template/cache - Set permissions on the folder
chmod o+w -R /LXCBuild - Write down the ip of this server (for use in the jenkins container)
jenkins
- In the container configure the setup script
nano /opt/Setup/Scripts/FirstRun.sh - In the container run the setup script
bash /opt/Setup/Scripts/FirstRun.sh - Acces Jenkins using
http://<ip>:8080 - Press the
Xto skip the fist time setup - Delete the
Adminuser go to 'Manage Jenkins' > 'Manage Users' > Admin > Delete - Add credentials for imgbuilder-CT go to 'Manage Jenkins' > 'Manage Nodes and Clouds' > LXCBuilder1 > configure
Under Credentials click 'Add', enter 'jenkins' as username, and set the password that was set in the imgbuilder CT Then select the created credential and click save - Click 'Relaunch agent'
- Now you can build container images
mysql
- To configure the MySQL root password in the container run the setup script
bash /opt/Setup/Scripts/FirstRun.sh
gitea
- Edit the parameters in the FistRun script in the container
vi /opt/Setup/Scripts/FirstRun.sh - Run the FistRun scipt in the container
ash /opt/Setup/Scripts/FirstRun.sh
nginx
- Run the FistRun scipt in the container
ash /opt/Setup/Scripts/FirstRun.sh
pihole
- Run the FistRun scipt in the container
ash /opt/Setup/Scripts/FirstRun.sh
colabora
- Update the configuration in /etc/loolwsd/loolwsd.xml and reload the service
systemctl restart loolwsd
jellyfin
- To set-up the system follow the inital set-up wizard on http://:8096
Description
Languages
Shell
95.3%
PHP
3.6%
Python
1.1%