Última atividade 1752392293

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

Revisão 7feaeb0da5ab2fcb3bca5216fd6733be71880b66

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