forked from serversathome/ServersatHome
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathubuntu-post-install.sh
More file actions
98 lines (69 loc) · 2.56 KB
/
Copy pathubuntu-post-install.sh
File metadata and controls
98 lines (69 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#!/bin/bash
# Check if the script is being run as root
if [ "$(id -u)" -ne 0 ]; then
echo "This script must be run as root."
exit 1
fi
# Run Update
echo "Executing Updates."
# Update the package lists
apt update
# Upgrade installed packages
apt upgrade -y
# Perform a distribution upgrade (if available)
apt dist-upgrade -y
# Clean up unused packages and cached files
apt autoremove -y
apt autoclean
echo "Update Complete."
# Add apps user and group
sudo groupadd -g 568 apps
sudo useradd -u 568 -g 568 -m -s /bin/bash apps
echo "User & Group apps created!"
# Change directory to /tmp
cd /tmp
# Download the setup-repos.sh script
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
echo "Downloading Webmin."
# Execute the setup-repos.sh script
yes | sh setup-repos.sh
# Install Webmin
echo "Installing Webmin."
apt-get install webmin -y
# Install Docker
echo "Installing Docker."
apt-get install -y \
ca-certificates \
curl \
gnupg
# Create directory for keyrings
install -m 0755 -d /etc/apt/keyrings
# Download and install Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Set appropriate permissions for Docker GPG key
chmod a+r /etc/apt/keyrings/docker.gpg
# Add Docker repository to apt sources
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update package lists
apt-get update
# Install Docker packages
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
echo "Docker Installed."
# Install Portainer
echo "Installing Portainer."
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
echo "Portainer Installed."
echo "Done!"
#Build media directory structure
sudo mkdir -p /media/{downloads,movies,tv}
sudo mkdir /configs
sudo chown -R apps:apps /media/{downloads,movies,tv}
sudo chown -R apps:apps /configs
echo "Media directory structure created!"
# Add updates
sudo crontab -l | { cat; echo "0 3 * * * apt update -y && apt upgrade -y"; } | sudo crontab -
# Add NFS package
sudo apt install nfs-common -y
#Add a mount point for TrueNAS
sudo sh -c 'echo "10.99.0.200:/mnt/bigdeal/media /media nfs defaults 0 0" >> /etc/fstab && mount -a'