dashboardsite-to-siteobfuscationwireguard-vpn-setupwireguard-vpnwireguard-tunnelwireguard-dashboardwireguardwg-managervpn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
import os
|
|
import typing
|
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
import const
|
|
from database import models
|
|
from database.database import SessionLocal
|
|
from db.api_key import add_initial_api_key_for_admin
|
|
from db.wireguard import server_add_on_init
|
|
from script.wireguard import is_installed, start_interface, is_running, load_environment_clients
|
|
|
|
|
|
def setup_on_start():
|
|
_db: Session = SessionLocal()
|
|
servers: typing.List[models.WGServer] = _db.query(models.WGServer).all()
|
|
for s in servers:
|
|
try:
|
|
last_state = s.is_running
|
|
if is_installed() and last_state and is_running(s):
|
|
start_interface(s)
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
if const.CLIENT:
|
|
load_environment_clients(_db)
|
|
|
|
if const.SERVER_INIT_INTERFACE is not None:
|
|
server_add_on_init(_db)
|
|
|
|
if const.SERVER_STARTUP_API_KEY is not None:
|
|
ADMIN_USERNAME = os.getenv("ADMIN_USERNAME")
|
|
add_initial_api_key_for_admin(_db, const.SERVER_STARTUP_API_KEY, ADMIN_USERNAME)
|
|
_db.close()
|
|
|