Coder Social home page Coder Social logo

abhishek-deshmukh / nrps Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 0.0 3.17 MB

A frontend to set reverse proxy on an Nginx server because the Nginx confs are ugly🤢

Home Page: https://blog.deshmukh.ml/post/6-a-gui-for-nginx.html

License: MIT License

Python 32.23% JavaScript 0.40% HTML 3.28% Vue 47.68% TypeScript 4.72% Shell 11.69%
nginx nginx-conf nrps nginx-server frontend python3 flask vue nodejs supervisor

nrps's Introduction

NRPS

Buy Me A Coffee

Nginx Reverse Proxy Setter

It started just for reverse proxy but now you can do all static file handling as well

If you wondering if this is secure this uses a 2^7 bit security code to do anything.

It provides with a frontend to setup Nginx server.

Because the nginx confs are ugly🤢

Screenshot

Requirements

Build machine

Usually your laptop or desktop but can be the remote server itself

  • NodeJS

Deployment machine

The remote server

  • python3 (For reading and righting the nginx config)
  • python3-pip (installing things for python)
  • virtualenv (so that nrps does not mess up other things)
  • nginx (duh …)
  • supervisor (to keep python running and restarting when it stops)
  • certbot (for https)
  • certbot-nginx (for https)

How to Install and run

Follow docs

Architecture

A flask api(backend) run as a root user, can read and write the nginx conf file, it gets requests form front end.

The fronend is a vue app, requests are send using axios.

Login authentication is done by flask

How to run (development)

Frontend

  • set up ip address in ./frontend/src/store/index.ts in the place of xxx.xxx.xxx.xxx
  • cd frontend/
  • npm install
  • npm run serve

Backend/API

  • Set up IP address in ./backend/api.py in the place of xxx.xxx.xxx.xxx
  • Put in the USERNAME and PASSWORD in ./backend/api.py
  • cd backend
  • pip install -r requirements.txt
  • python api.py

nrps's People

Contributors

abhishek-deshmukh avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nrps's Issues

Login Credentials Fail

Thanks for an attempt at this. If I can figure this out I'm happy to submit a docker container that makes deployment trivial. However, I can't get past the login page despite setting the username and password in backend/api.py
Also frontend/src/store/index.ts is a litte worrisome because it asks for a username but you say put in the servername. I've attempted to make all three fields "admin" for testing. I get the login page but no further.

I suspect this is due to secrets.txt perhaps not getting written but having trouble finding logs.


ubuntu@NRPS:~$ cat NRPS/backend/api.py 
....
# enter things here
USERNAME = "admin"
PASSWORD = "admin"
# enter things here

APP = Flask(__name__)
CORS(APP)
PATH_TO_CONF = "../conf.d/default.conf"
SECRET_FILE = "./secrets.txt"
...
ubuntu@NRPS:~$ cat NRPS/frontend/src/store/index.ts 
import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export default new Vuex.Store({
  state: {

    // enter here
    rootIP: "10.1.1.13",
    userName: "admin",
    // enter here

    securityKey: "",
    loggedIn: false,
  },
  mutations: {},
  actions: {},
  modules: {},
});

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.