Dernière activité 1752392293

Професионален скрипт на български език за инсталиране на Nextcloud с Docker на Ubuntu.

Révision f2feed9d6a94f4f78b118363141a3cdd6faeee80

install_nextcloud_docker.sh Brut
1#!/bin/bash
2
3# Автор: Федя Серафиев
4# Сайт: https://urocibg.eu
5# Дата: $(date +%Y-%m-%d)
6
7# Цветове за терминала
8RED='\033[0;31m'
9GREEN='\033[0;32m'
10YELLOW='\033[1;33m'
11BLUE='\033[0;34m'
12NC='\033[0m' # No Color
13
14# Функция за проверка на root потребител
15check_root() {
16 if [ "$(id -u)" -ne 0 ]; then
17 echo -e "${RED}Грешка: Този скрипт трябва да се изпълнява с root права!${NC}" >&2
18 exit 1
19 fi
20}
21
22# Функция за проверка на интернет връзка
23check_internet() {
24 echo -e "${BLUE}Проверка на интернет връзка...${NC}"
25 if ! ping -c 1 google.com &> /dev/null; then
26 echo -e "${RED}Грешка: Няма интернет връзка! Моля, проверете мрежата.${NC}"
27 exit 1
28 fi
29 echo -e "${GREEN}Интернет връзката е налична.${NC}"
30}
31
32# Функция за инсталиране на Docker
33install_docker() {
34 echo -e "${BLUE}Проверка за инсталиран Docker...${NC}"
35 if ! command -v docker &> /dev/null; then
36 echo -e "${YELLOW}Docker не е инсталиран. Започва инсталация...${NC}"
37
38 # Инсталиране на необходими пакети
39 apt-get update
40 apt-get install -y apt-transport-https ca-certificates curl software-properties-common
41
42 # Добавяне на Docker GPG ключ
43 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
44
45 # Добавяне на Docker repository
46 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
47
48 # Инсталиране на Docker
49 apt-get update
50 apt-get install -y docker-ce docker-ce-cli containerd.io
51
52 # Проверка на Docker инсталацията
53 if docker --version &> /dev/null; then
54 echo -e "${GREEN}Docker е успешно инсталиран.${NC}"
55 else
56 echo -e "${RED}Грешка при инсталация на Docker!${NC}"
57 exit 1
58 fi
59 else
60 echo -e "${GREEN}Docker вече е инсталиран.${NC}"
61 fi
62}
63
64# Функция за инсталиране на Docker Compose
65install_docker_compose() {
66 echo -e "${BLUE}Проверка за инсталиран Docker Compose...${NC}"
67 if ! command -v docker-compose &> /dev/null; then
68 echo -e "${YELLOW}Docker Compose не е инсталиран. Започва инсталация...${NC}"
69
70 # Изтегляне на Docker Compose
71 curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
72
73 # Права за изпълнение
74 chmod +x /usr/local/bin/docker-compose
75
76 # Проверка на инсталацията
77 if docker-compose --version &> /dev/null; then
78 echo -e "${GREEN}Docker Compose е успешно инсталиран.${NC}"
79 else
80 echo -e "${RED}Грешка при инсталация на Docker Compose!${NC}"
81 exit 1
82 fi
83 else
84 echo -e "${GREEN}Docker Compose вече е инсталиран.${NC}"
85 fi
86}
87
88# Функция за създаване на Docker Compose файл за Nextcloud
89create_docker_compose() {
90 echo -e "${BLUE}Създаване на Docker Compose файл за Nextcloud...${NC}"
91
92 cat > docker-compose.yml <<EOF
93version: '3'
94
95services:
96 db:
97 image: mariadb:10.5
98 restart: always
99 command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
100 volumes:
101 - db_data:/var/lib/mysql
102 environment:
103 - MYSQL_ROOT_PASSWORD=nextcloud_root_password
104 - MYSQL_PASSWORD=nextcloud_password
105 - MYSQL_DATABASE=nextcloud
106 - MYSQL_USER=nextcloud
107
108 app:
109 image: nextcloud
110 restart: always
111 ports:
112 - 8080:80
113 links:
114 - db
115 volumes:
116 - nextcloud_data:/var/www/html
117 environment:
118 - MYSQL_PASSWORD=nextcloud_password
119 - MYSQL_DATABASE=nextcloud
120 - MYSQL_USER=nextcloud
121 - MYSQL_HOST=db
122
123volumes:
124 db_data:
125 nextcloud_data:
126EOF
127
128 echo -e "${GREEN}Docker Compose файлът е създаден успешно.${NC}"
129}
130
131# Функция за стартиране на Nextcloud
132start_nextcloud() {
133 echo -e "${BLUE}Стартиране на Nextcloud с Docker Compose...${NC}"
134 docker-compose up -d
135
136 echo -e "${GREEN}Nextcloud е стартиран успешно!${NC}"
137 echo -e "${YELLOW}Можете да достъпите Nextcloud на: http://$(hostname -I | awk '{print $1}'):8080${NC}"
138 echo -e "${YELLOW}Потребителско име: admin${NC}"
139 echo -e "${YELLOW}Парола: ще бъде зададена при първо влизане${NC}"
140}
141
142# Главна функция
143main() {
144 echo -e "${BLUE}╔════════════════════════════════════════╗${NC}"
145 echo -e "${BLUE}║ ИНСТАЛАЦИЯ НА NEXTCLOUD С DOCKER ║${NC}"
146 echo -e "${BLUE}╚════════════════════════════════════════╝${NC}"
147
148 check_root
149 check_internet
150 install_docker
151 install_docker_compose
152 create_docker_compose
153 start_nextcloud
154
155 echo -e "${GREEN}Инсталацията завърши успешно!${NC}"
156}
157
158# Стартиране на главната функция
159main