Skip to content

Commit 9fa97fe

Browse files
authored
Update install_remnawave.sh
- refactor installer: use official Docker convenience script - write subscription page API token directly to docker-compose in helper function
1 parent 04df360 commit 9fa97fe

1 file changed

Lines changed: 30 additions & 40 deletions

File tree

install_remnawave.sh

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
SCRIPT_VERSION="2.3.0"
3+
SCRIPT_VERSION="2.3.1"
44
UPDATE_AVAILABLE=false
55
DIR_REMNAWAVE="/usr/local/remnawave_reverse/"
66
LANG_FILE="${DIR_REMNAWAVE}selected_language"
@@ -2874,32 +2874,18 @@ install_packages() {
28742874
fi
28752875
fi
28762876

2877-
if grep -q "Ubuntu" /etc/os-release; then
2878-
install -m 0755 -d /etc/apt/keyrings
2879-
if ! curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /etc/apt/keyrings/docker.asc > /dev/null; then
2877+
if ! command -v docker >/dev/null 2>&1 || ! docker info >/dev/null 2>&1; then
2878+
echo -e "${COLOR_YELLOW}Installing Docker via get.docker.com...${COLOR_RESET}"
2879+
2880+
if ! curl -fsSL https://get.docker.com -o /tmp/get-docker.sh; then
28802881
echo -e "${COLOR_RED}${LANG[ERROR_DOWNLOAD_DOCKER_KEY]}${COLOR_RESET}" >&2
28812882
return 1
28822883
fi
2883-
chmod a+r /etc/apt/keyrings/docker.asc
2884-
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
2885-
elif grep -q "Debian" /etc/os-release; then
2886-
install -m 0755 -d /etc/apt/keyrings
2887-
if ! curl -fsSL https://download.docker.com/linux/debian/gpg | tee /etc/apt/keyrings/docker.asc > /dev/null; then
2888-
echo -e "${COLOR_RED}${LANG[ERROR_DOWNLOAD_DOCKER_KEY]}${COLOR_RESET}" >&2
2884+
2885+
if ! sh /tmp/get-docker.sh; then
2886+
echo -e "${COLOR_RED}${LANG[ERROR_INSTALL_DOCKER]}${COLOR_RESET}" >&2
28892887
return 1
28902888
fi
2891-
chmod a+r /etc/apt/keyrings/docker.asc
2892-
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
2893-
fi
2894-
2895-
if ! apt-get update; then
2896-
echo -e "${COLOR_RED}${LANG[ERROR_UPDATE_DOCKER_LIST]}${COLOR_RESET}" >&2
2897-
return 1
2898-
fi
2899-
2900-
if ! apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; then
2901-
echo -e "${COLOR_RED}${LANG[ERROR_INSTALL_DOCKER]}${COLOR_RESET}" >&2
2902-
return 1
29032889
fi
29042890

29052891
if ! command -v docker >/dev/null 2>&1; then
@@ -4041,26 +4027,33 @@ update_squad() {
40414027
create_api_token() {
40424028
local domain_url=$1
40434029
local token=$2
4044-
local token_name="${3:-subscription-page-token}"
4030+
local target_dir=$3
4031+
local token_name="${4:-subscription-page}"
40454032

40464033
local token_data='{"tokenName":"'"$token_name"'"}'
4047-
local api_response=$(make_api_request "POST" "http://$domain_url/api/tokens" "$token" "$token_data")
4034+
local api_response
4035+
api_response=$(make_api_request "POST" "http://$domain_url/api/tokens" "$token" "$token_data")
40484036

40494037
if [ -z "$api_response" ]; then
40504038
echo -e "${COLOR_RED}${LANG[ERROR_CREATE_API_TOKEN]}${COLOR_RESET}" >&2
40514039
return 1
40524040
fi
40534041

4054-
if echo "$api_response" | jq -e '.response.token' > /dev/null 2>&1; then
4055-
local api_token=$(echo "$api_response" | jq -r '.response.token')
4056-
echo "$api_token"
4057-
return 0
4058-
else
4059-
echo -e "${COLOR_RED}${LANG[ERROR_CREATE_API_TOKEN]}: $(echo "$api_response" | jq -r '.message // "Unknown error"') ${COLOR_RESET}" >&2
4042+
local api_token
4043+
api_token=$(echo "$api_response" | jq -r '.response.token')
4044+
4045+
if [ -z "$api_token" ] || [ "$api_token" = "null" ]; then
4046+
echo -e "${COLOR_RED}${LANG[ERROR_CREATE_API_TOKEN]}: $(echo "$api_response" | jq -r '.message // "Unknown error"')" >&2
40604047
return 1
40614048
fi
4049+
4050+
# сразу правим docker-compose.yml как в get_public_key
4051+
sed -i "s|REMNAWAVE_API_TOKEN=.*|REMNAWAVE_API_TOKEN=$api_token|" "$target_dir/docker-compose.yml"
4052+
4053+
echo -e "${COLOR_GREEN}${LANG[API_TOKEN_ADDED]}${COLOR_RESET}"
40624054
}
40634055

4056+
40644057
### API Functions ###
40654058

40664059
handle_certificates() {
@@ -4519,7 +4512,10 @@ installation() {
45194512
condition: service_healthy
45204513
environment:
45214514
- REMNAWAVE_PANEL_URL=http://remnawave:3000
4515+
- SUBSCRIPTION_UI_DISPLAY_RAW_KEYS=true
45224516
- APP_PORT=3010
4517+
- META_TITLE="Remnawave Subscription"
4518+
- META_DESCRIPTION="page"
45234519
- REMNAWAVE_API_TOKEN=\$api_token
45244520
ports:
45254521
- '127.0.0.1:3010:3010'
@@ -4773,16 +4769,7 @@ EOL
47734769

47744770
# Create API token for subscription page
47754771
echo -e "${COLOR_YELLOW}${LANG[CREATING_API_TOKEN]}${COLOR_RESET}"
4776-
local api_token
4777-
api_token=$(create_api_token "$domain_url" "$token" "subscription-page")
4778-
4779-
if [ -n "$api_token" ]; then
4780-
4781-
sed -i "s|REMNAWAVE_API_TOKEN=.*|REMNAWAVE_API_TOKEN=$api_token|" /opt/remnawave/docker-compose.yml
4782-
4783-
echo -e "${COLOR_GREEN}${LANG[API_TOKEN_ADDED]}${COLOR_RESET}"
4784-
4785-
fi
4772+
create_api_token "$domain_url" "$token" "$target_dir"
47864773

47874774
# Stop and start Remnawave
47884775
echo -e "${COLOR_YELLOW}${LANG[STOPPING_REMNAWAVE]}${COLOR_RESET}"
@@ -5096,7 +5083,10 @@ installation_panel() {
50965083
condition: service_healthy
50975084
environment:
50985085
- REMNAWAVE_PANEL_URL=http://remnawave:3000
5086+
- SUBSCRIPTION_UI_DISPLAY_RAW_KEYS=true
50995087
- APP_PORT=3010
5088+
- META_TITLE="Remnawave Subscription"
5089+
- META_DESCRIPTION="page"
51005090
- REMNAWAVE_API_TOKEN=\$api_token
51015091
ports:
51025092
- '127.0.0.1:3010:3010'

0 commit comments

Comments
 (0)