diff --git a/app/db/migrations/versions/20faa9f18c0a_init.py b/app/db/migrations/versions/20faa9f18c0a_init.py index 4b8ed4c..462abeb 100644 --- a/app/db/migrations/versions/20faa9f18c0a_init.py +++ b/app/db/migrations/versions/20faa9f18c0a_init.py @@ -38,7 +38,7 @@ def upgrade() -> None: ) op.bulk_insert(jwttable, [{"id": 1, "secret_key": os.urandom(32).hex()}]) - op.create_table('nodes', + nodestable = op.create_table('nodes', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=256), nullable=True), sa.Column('address', sa.String(length=256), nullable=True), @@ -56,6 +56,7 @@ def upgrade() -> None: sa.UniqueConstraint('name'), sa.UniqueConstraint('address', 'port') ) + op.bulk_insert(nodestable, [{"name": "local", "address": "127.0.0.1", "port": 53042, "connection_backend": "grpcio", "status": "unhealthy"}]) op.create_table('services', sa.Column('id', sa.Integer(), nullable=False), sa.Column('name', sa.String(length=64), nullable=True), diff --git a/docker-compose.yml b/docker-compose.yml index cfdab5a..df3a170 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,20 @@ services: image: dawsh/marzneshin:latest restart: always env_file: .env - network_mode: host volumes: - /var/lib/marzneshin:/var/lib/marzneshin + ports: + - "8000:8000" + + marznode: + image: dawsh/marznode:latest + restart: always + network_mode: host + environment: + SERVICE_ADDRESS: "127.0.0.1" + INSECURE: "True" + XRAY_EXECUTABLE_PATH: "/usr/local/bin/xray" + XRAY_ASSETS_PATH: "/usr/local/lib/xray" + XRAY_CONFIG_PATH: "/var/lib/marznode/xray_config.json" + volumes: + - /var/lib/marznode:/var/lib/marznode diff --git a/script.sh b/script.sh index dce99a5..82a1f1a 100644 --- a/script.sh +++ b/script.sh @@ -2,8 +2,10 @@ set -e APP_NAME="marzneshin" +NODE_NAME="marznode" CONFIG_DIR="/etc/opt/$APP_NAME" DATA_DIR="/var/lib/$APP_NAME" +NODE_DATA_DIR="/var/lib/$NODE_NAME" COMPOSE_FILE="$CONFIG_DIR/docker-compose.yml" @@ -142,6 +144,10 @@ install_marzneshin() { colorized_echo green "Marzneshin files downloaded successfully" } +install_marznode_xray_config() { + curl -sL "https://raw.githubusercontent.com/khodedawsh/marznode" -o "$NODE_DATA_DIR/xray_config.json" + colorized_echo green "Sample xray config downloaded for marznode" +} uninstall_marzneshin_script() { if [ -f "/usr/local/bin/marzneshin" ]; then @@ -177,6 +183,14 @@ uninstall_marzneshin_data_files() { fi } +uninstall_marznode_data_files() { + if [ -d "$NODE_DATA_DIR" ]; then + colorized_echo yellow "Removing directory: $NODE_DATA_DIR" + rm -r "$NODE_DATA_DIR" + fi +} + + up_marzneshin() { $COMPOSE -f $COMPOSE_FILE -p "$APP_NAME" up -d --remove-orphans } @@ -250,6 +264,7 @@ install_command() { detect_compose install_marzneshin_script install_marzneshin + install_marznode_xray_config up_marzneshin follow_marzneshin_logs } @@ -276,11 +291,12 @@ uninstall_command() { uninstall_marzneshin uninstall_marzneshin_docker_images - read -p "Do you want to remove Marzneshin's data files too ($DATA_DIR)? (y/n) " + read -p "Do you want to remove marzneshin & marznode data files too ($NODE_DATA_DIR, $DATA_DIR)? (y/n) " if [[ ! $REPLY =~ ^[Yy]$ ]]; then colorized_echo green "Marzneshin uninstalled successfully" else uninstall_marzneshin_data_files + uninstall_marznode_data_files colorized_echo green "Marzneshin uninstalled successfully" fi }