Skip to content

OutFleet takes the complexities out of managing your OutLine VPN

License

Notifications You must be signed in to change notification settings

house-of-vanity/OutFleet

Repository files navigation

OutFleet: Master Your OutLine VPN

Streamline OutLine VPN experience. OutFleet offers centralized key control for many servers and always-updated Dynamic Access Keys instead of ss:// links

Request Feature

Forks Stargazers License

About The Project

Screen Shot

Key Features

  • Centralized Key Management Administer user keys from one unified dashboard. Add, delete, and allocate users to specific servers effortlessly.

  • Dynamic Access Keys Distribute ssconf:// links that are always up-to-date with your current server configurations. Eliminate the need for manual link updates.

Why OutFleet?

Tired of juggling multiple home servers and the headache of individually managing users on each? OutFleet was born out of the frustration of not finding a suitable tool for efficiently managing a bunch of home servers.

Built With

Python, Flask and offer hassle-free deployment.

Installation

Docker deploy is easy:

docker run --restart always -p 5000:5000 -d --name outfleet --mount type=bind,source=/etc/outfleet/config.yaml,target=/usr/local/etc/outfleet/config.yaml ultradesu/outfleet:latest

Use reverse proxy to secure ALL path of OutFleet except of /dynamic/*

server {
  listen 443 ssl http2;
  server_name server.name;
  
  # Specify SSL config if using a shared one.
  #include conf.d/ssl/ssl.conf;
  
  # Allow large attachments
  client_max_body_size 128M;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/server.name/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/server.name/privkey.pem; # managed by Certbot

  location / {
    proxy_pass http://localhost:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    auth_basic "Private Place";
    auth_basic_user_file /etc/nginx/htpasswd;
  }
  
  location /dynamic {
    auth_basic off;
    proxy_pass http://localhost:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
    access_log /var/log/nginx/server.name.access.log;
    error_log /var/log/nginx/server.name.error.log;

}
server {
        listen 80;
        server_name server.name;
        listen [::]:80;
        return 301 https://$host$request_uri;
}

Keep in mind that all user keys are stored in a single config.yaml file. If this file is lost, user keys will remain on the servers, but OutFleet will lose the ability to manage them. Handle with extreme caution and use backups.

Authors

  • UltraDesu - Humble amateur developer - UltraDesu - Author
  • Contributors
    • @Sanapach

About

OutFleet takes the complexities out of managing your OutLine VPN

Resources

License

Stars

Watchers

Forks