MyProxy is an alternative to Nginx that allows automatic domain provider integration, ssl support for all domains, dynamic port proxy and automatic git deployment.
MyProxy helps you quickly and easily:
Watch the following videos to understand how MyProxy works:
Setting up MyProxy on your server
Try it out on one of our open source partners providing a heroku alternative: https://freedomains.dev/
Setting up a server is hard - especially setting up DNS records, managing certificates, and deployment. So we setup to build a simple and easy-to-use app that helps us build applications quickly.
We are new to software engineering so if you find areas where this app could be improved, please let us know by creating an issue. We are excited to learn!
Also, we are currently seeking jobs. If your team needs software engineers, please reach out:
To use MyProxy
, you need 3 things:
We tested MyProxy on the AWS and Google Cloud platforms. If you use them, please follow the configurations and setup below to make sure MyProxy works well for you.
You will need to configure the VM's firewall per table below during security group setup on AWS EC2 instance.
Type | Protocol | Port Range | Source |
---|---|---|---|
HTTP | TCP | 80 | 0.0.0.0/0 |
HTTPS | TCP | 443 | 0.0.0.0/0 |
SSH | TCP | 22 | 0.0.0.0/0 |
Custom TCP Rule | TCP | 3000 | 0.0.0.0/0 |
Custom TCP Rule | TCP | 9418 | 0.0.0.0/0 |
specify target tags
myproxy
IP ranges
0.0.0.0/0
tcp: 3000
Update Google VMs to specify myproxy http-server https-server
in network tags
ssh root@your-server-ip-address
sudo su root
and change to home folder cd ~
git clone https://github.com/garageScript/myProxy.git
cd myProxy
./scripts/setup.sh
nodeJS
and npm
if system does not have them.3000
(for the admin page UI), 80
and 443
.ADMIN=YOUR_ADMIN_PASSWORD npm run server
PORT
environment variableexit
http://your-server-ip-address:3000
. You will be prompted to enter your admin password and your domain provider's API Key and Secret, find out how herehttp://your-server-ip-address:3000
git clone
the app, then build the app locally. Find out how in the Building Your Local App section below. git push origin master
and watch your app run in production!git clone <your fullDomain repo>
to clone your app folder.cd <your fullDomain folder>
npm init -y
npm i express --save
touch app.js
const express = require('express');
const app = express();
app.use(express.static('public'));
app.get('/', (req, res) => {
res.send('hello');
});
app.listen(process.env.PORT || 8123);
scripts
section in package.json
with your app entry point command, under start
: "start": "node app.js"
git add .
git commit -m "Initial Commit"
git push origin master
Users can use Access Tokens to manage their domain mappings from a 3rd party server. See available endpoints
The following steps will guide you through how to setup your development environment to send pull requests or build your own custom features.
You need to install node and typescript
npm install
or yarn
yarn start
or npm run start
PORT
environment variableIf your company sells domain names and you want your service to be supported on MyProxy, make sure you integrate with acme.sh first.
Sample integration for Name.com that you can follow along.
src/providers/index.ts
. Add your service to providerList
, following the your acme.sh
integration's naming convention.
path
should be the location of the file you create in the next step.getDomains
and setRecord
. src/types/general.ts
You are done! Get a beer 🍺
npm run autofix
: make sure there are no errors / warningsMyProxy is MIT licensed
Thanks goes to these wonderful people (emoji key):
Song Zheng 💻 📖 🤔 🚇 🧑🏫 📆 👀 |
Herman Wong 💻 👀 |
rkalra247 💻 |
David De Wulf 💻 |
SahilKalra98 💻 |
albertoelopez 💻 |
Alberto Lopez 💻 |
Bryan Jennings 💻 |
Josh Greenwell 💻 |
Colton Ehrman 💻 👀 |
Guilherme Gwadera 💻 🚧 |
Cijin Cherian 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!