mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-07-03 14:07:39 +02:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8d2a4990e7 | |||
| bf65a57b32 | |||
| 7efb681b02 | |||
| 5aff154521 | |||
| 7bf16406f5 | |||
| 83850bd997 | |||
| bb6de0c22a |
@@ -411,6 +411,8 @@ ErrorCode ServerController::installDockerWorker(const ServerCredentials &credent
|
||||
return ErrorCode::ServerPacketManagerError;
|
||||
if (stdOut.contains("sudo:") && stdOut.contains("not found"))
|
||||
return ErrorCode::ServerDockerFailedError;
|
||||
if (stdOut.contains("Docker is not supported"))
|
||||
return ErrorCode::ServerDockerNotSupported;
|
||||
if (stdOut.contains("Failed docker status"))
|
||||
return ErrorCode::ServerDockerStatusNotActive;
|
||||
|
||||
|
||||
+2
-1
@@ -58,7 +58,8 @@ namespace amnezia
|
||||
ServerUserDirectoryNotAccessible = 208,
|
||||
ServerUserNotAllowedInSudoers = 209,
|
||||
ServerUserPasswordRequired = 210,
|
||||
ServerDockerStatusNotActive = 211,
|
||||
ServerDockerNotSupported = 211,
|
||||
ServerDockerStatusNotActive = 212,
|
||||
|
||||
// Ssh connection errors
|
||||
SshRequestDeniedError = 300,
|
||||
|
||||
@@ -26,6 +26,7 @@ QString errorString(ErrorCode code) {
|
||||
case(ErrorCode::ServerUserDirectoryNotAccessible): errorMessage = QObject::tr("The server user's home directory is not accessible"); break;
|
||||
case(ErrorCode::ServerUserNotAllowedInSudoers): errorMessage = QObject::tr("Action not allowed in sudoers"); break;
|
||||
case(ErrorCode::ServerUserPasswordRequired): errorMessage = QObject::tr("The user's password is required"); break;
|
||||
case(ErrorCode::ServerDockerNotSupported): errorMessage = QObject::tr("Docker for installation by default is not supported"); break;
|
||||
case(ErrorCode::ServerDockerStatusNotActive): errorMessage = QObject::tr("Docker service status is not active"); break;
|
||||
|
||||
// Libssh errors
|
||||
|
||||
@@ -16,3 +16,9 @@ sudo docker network connect amnezia-dns-net $CONTAINER_NAME
|
||||
# Prevent to route packets outside of the container in case if server behind of the NAT
|
||||
#sudo docker exec -i $CONTAINER_NAME sh -c "ifconfig eth0:0 $SERVER_IP_ADDRESS netmask 255.255.255.255 up"
|
||||
|
||||
# Create service for podman
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then \
|
||||
sudo sh -c "podman generate systemd --restart-policy=always -t 10 --name $CONTAINER_NAME 2>/dev/null > $DOCKERFILE_FOLDER/container-$CONTAINER_NAME.service";\
|
||||
sudo cp $DOCKERFILE_FOLDER/container-$CONTAINER_NAME.service /etc/systemd/system/;\
|
||||
sudo systemctl daemon-reload && sudo systemctl enable --now container-$CONTAINER_NAME.service && sudo docker update --restart no $CONTAINER_NAME > /dev/null;\
|
||||
fi
|
||||
|
||||
@@ -1 +1,19 @@
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then sudo sh -c "\
|
||||
test -d /var/cache/containers || mkdir -m 700 -p /var/cache/containers;\
|
||||
test -f /var/cache/containers/short-name-aliases.conf || chmod 600 /var/cache/containers/short-name-aliases.conf>>/var/cache/containers/short-name-aliases.conf;\
|
||||
grep -q '\[aliases\]' /var/cache/containers/short-name-aliases.conf || echo '[aliases]' >> /var/cache/containers/short-name-aliases.conf;\
|
||||
grep -q ' # Amnezia start' /var/cache/containers/short-name-aliases.conf || printf '%s\n' \
|
||||
' # Amnezia start' \
|
||||
' \"amneziavpn/ipsec-server\" = \"docker.io/amneziavpn/ipsec-server\"' \
|
||||
' \"amneziavpn/amneziawg-go\" = \"docker.io/amneziavpn/amneziawg-go\"' \
|
||||
' \"amneziavpn/amnezia-wg\" = \"docker.io/amneziavpn/amnezia-wg\"' \
|
||||
' \"amneziavpn/euphoria\" = \"docker.io/amneziavpn/euphoria\"' \
|
||||
' \"amneziavpn/torpress\" = \"docker.io/amneziavpn/torpress\"' \
|
||||
' \"mvance/unbound\" = \"docker.io/mvance/unbound\"' \
|
||||
' \"3proxy/3proxy\" = \"docker.io/3proxy/3proxy\"' \
|
||||
' \"atmoz/sftp\" = \"docker.io/atmoz/sftp\"' \
|
||||
' \"alpine\" = \"docker.io/library/alpine\"' \
|
||||
' # Amnezia finish' \
|
||||
>> /var/cache/containers/short-name-aliases.conf";\
|
||||
fi;\
|
||||
sudo docker build --no-cache --pull -t $CONTAINER_NAME $DOCKERFILE_FOLDER
|
||||
|
||||
@@ -10,15 +10,28 @@ if ! command -v sudo > /dev/null 2>&1; then $pm $check_pkgs; $pm $silent_inst su
|
||||
if ! command -v fuser > /dev/null 2>&1; then sudo $pm $check_pkgs; sudo $pm $silent_inst psmisc; fi;\
|
||||
if ! command -v lsof > /dev/null 2>&1; then sudo $pm $check_pkgs; sudo $pm $silent_inst lsof; fi;\
|
||||
if ! command -v docker > /dev/null 2>&1; then \
|
||||
sudo $pm $check_pkgs; sudo $pm $silent_inst $docker_pkg;\
|
||||
sleep 5; sudo systemctl enable --now $check_srv; sleep 5;\
|
||||
sudo $pm $check_pkgs;\
|
||||
if [ -n "$(sudo $pm $wh_pkg $docker_pkg 2>/dev/null | grep moby-engine)" ];\
|
||||
then echo "Docker is not supported"; exit 1;\
|
||||
else sudo $pm $silent_inst $docker_pkg;\
|
||||
fi;\
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then check_srv="podman.socket podman"; docker_pkg="podman-docker";\
|
||||
if [ -n "$(sudo docker --version 2>&1 | grep /etc/containers/nodocker)" ]; then sudo touch /etc/containers/nodocker; fi;\
|
||||
fi;\
|
||||
sleep 5; sudo systemctl enable --now $check_srv 2>/dev/null; sleep 5;\
|
||||
fi;\
|
||||
if [ "$(cat /sys/module/apparmor/parameters/enabled 2>/dev/null)" = "Y" ]; then \
|
||||
if ! command -v apparmor_parser > /dev/null 2>&1; then sudo $pm $check_pkgs; sudo $pm $silent_inst apparmor; fi;\
|
||||
fi;\
|
||||
if [ "$(systemctl is-active $check_srv)" != "active" ]; then \
|
||||
if [ -n "$(sudo docker --version 2>&1 | grep moby-engine)" ]; then echo "Docker is not supported"; exit 1;\
|
||||
elif [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then check_srv="podman.socket podman"; docker_pkg="podman-docker";\
|
||||
if [ -n "$(sudo docker --version 2>&1 | grep /etc/containers/nodocker)" ]; then sudo touch /etc/containers/nodocker; fi;\
|
||||
fi;\
|
||||
if [ "$(systemctl is-active $check_srv | head -n1)" != "active" ]; then \
|
||||
sudo $pm $check_pkgs; sudo $pm $silent_inst $docker_pkg;\
|
||||
sleep 5; sudo systemctl start $check_srv; sleep 5;\
|
||||
if [ "$(systemctl is-active $check_srv)" != "active" ]; then echo "Failed docker status"; fi;\
|
||||
if [ "$(systemctl is-active $check_srv | head -n1)" != "active" ]; then echo "Failed docker status"; fi;\
|
||||
fi;\
|
||||
sudo docker --version
|
||||
|
||||
# To allow autoinstallation of podman-docker, remove ' || [ -n "$(sudo $pm $wh_pkg $docker_pkg 2>/dev/null | grep podman-docker)" ]' and ' || [ -n "$(sudo docker --version 2>&1 | grep podman)" ]'
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker stop;\
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then \
|
||||
sudo systemctl list-units | grep amnezia | awk '{print $1}' | xargs sudo systemctl disable --now;\
|
||||
sudo systemctl daemon-reload; sudo systemctl reset-failed;\
|
||||
sudo rm -f /etc/systemd/system/container-amnezia-*.service;\
|
||||
sudo systemctl daemon-reload;\
|
||||
sudo sed -i '/^ # Amnezia start/,/^ # Amnezia finish$/d' /var/cache/containers/short-name-aliases.conf;\
|
||||
fi;\
|
||||
sudo docker ps -a | grep amnezia | awk '{print $1}' | xargs sudo docker rm -fv;\
|
||||
sudo docker images -a | grep amnezia | awk '{print $3}' | xargs sudo docker rmi;\
|
||||
sudo docker network ls | grep amnezia-dns-net | awk '{print $1}' | xargs sudo docker network rm;\
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
sudo docker stop $CONTAINER_NAME;\
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then \
|
||||
sudo systemctl disable --now container-$CONTAINER_NAME.service;\
|
||||
sudo systemctl daemon-reload; sudo systemctl reset-failed;\
|
||||
sudo rm -f /etc/systemd/system/container-$CONTAINER_NAME.service;\
|
||||
sudo systemctl daemon-reload;\
|
||||
fi;\
|
||||
sudo docker rm -fv $CONTAINER_NAME;\
|
||||
sudo docker rmi $CONTAINER_NAME
|
||||
|
||||
@@ -12,12 +12,12 @@ sudo docker network connect amnezia-dns-net $CONTAINER_NAME
|
||||
# Create tun device if not exist
|
||||
sudo docker exec -i $CONTAINER_NAME bash -c 'mkdir -p /dev/net; if [ ! -c /dev/net/tun ]; then mknod /dev/net/tun c 10 200; fi'
|
||||
|
||||
# Prevent to route packets outside of the container in case if server behind of the NAT
|
||||
#sudo docker exec -i $CONTAINER_NAME sh -c "ifconfig eth0:0 $SERVER_IP_ADDRESS netmask 255.255.255.255 up"
|
||||
|
||||
# Create service for podman
|
||||
if [ -n "$(sudo docker --version 2>/dev/null | grep podman)" ]; then \
|
||||
sudo sh -c "podman generate systemd --new --name $CONTAINER_NAME 2>/dev/null > $DOCKERFILE_FOLDER/container-$CONTAINER_NAME.service";\
|
||||
sudo mv $DOCKERFILE_FOLDER/container-$CONTAINER_NAME.service /etc/systemd/system/
|
||||
sudo systemctl daemon-reload && sudo systemctl enable --now container-$CONTAINER_NAME.service;\
|
||||
sudo cp $DOCKERFILE_FOLDER/container-$CONTAINER_NAME.service /etc/systemd/system/;\
|
||||
sudo systemctl daemon-reload && sudo systemctl enable --now container-$CONTAINER_NAME.service && sudo docker update --restart no $CONTAINER_NAME > /dev/null;\
|
||||
fi
|
||||
|
||||
# Prevent to route packets outside of the container in case if server behind of the NAT
|
||||
#sudo docker exec -i $CONTAINER_NAME sh -c "ifconfig eth0:0 $SERVER_IP_ADDRESS netmask 255.255.255.255 up"
|
||||
|
||||
Reference in New Issue
Block a user