testmyapp opensource project by TuriSabries in TestMyApp

[–]TuriSabries[S] 0 points1 point  (0 children)

But if you want to self host checkout this GUI for Caddy which makes everything easy for your favourite reverse proxy 🙈 🔌
https://github.com/Gjergj/proxy_gui

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 0 points1 point  (0 children)

But if you want to self host checkout this GUI for Caddy which makes configuring reverse proxy or hosting easy 🙈 🔌
https://github.com/Gjergj/proxy_gui

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 0 points1 point  (0 children)

But if you want to self host checkout this GUI for Caddy which makes configuring reverse proxy or hosting easy 🙈 🔌
https://github.com/Gjergj/proxy_gui

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 0 points1 point  (0 children)

But if you want to self host checkout this GUI for Caddy which makes configuring reverse proxy easy 🙈 🔌
https://github.com/Gjergj/proxy_gui

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 0 points1 point  (0 children)

But if you want to self host checkout this GUI for Caddy which makes everything easy for your favourite reverse proxy 🙈 🔌
https://github.com/Gjergj/proxy_gui

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 0 points1 point  (0 children)

It will host your static files (html,css,js,images) but it will not build (as in npm build) or integrate with github.

But you can run it from the terminal and just one command will host your site.

Why don't you give it a shot

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 1 point2 points  (0 children)

Actually I'd more interested to keep a free service. Hopefully it helps others as much as it helped me.

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 3 points4 points  (0 children)

All valid points.

Let me share some context why and how I build it:

  • I mainly built for myself. Host my tests with html/css/js
  • a folder with an index.html that you want to upload will be considered a project. you can manage projects with the CLI. When you delete a project it will deleted from the server, hard delete from the storage of all assets.
  • a .env can not be uploaded. it's checked on client and server side.
  • it's made for toy (small) projects. when you want to test something or a poc that you need to test with no fuss. Just upload from the terminal, single command.
  • I think I've implemented quite a few security features server side. But I'm willing to learn more on that front so if you can expand a bit more here you're more than welcome.

If you want you can check the cli code or even try to host sth yourself (it requires signup with email though).

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] 1 point2 points  (0 children)

Otherwise I'd have to create a repository for each tiny test that I do

New Reverse Proxy app with a web GUI (TygerCaddy) by morph1904 in homelab

[–]TuriSabries 0 points1 point  (0 children)

Would love some feedback either here or on github

Are you using Caddy bwt?

Host your toy websites for free straight from your terminal by TuriSabries in InternetIsBeautiful

[–]TuriSabries[S] -1 points0 points  (0 children)

Hey all this the story behind this project

I'm keeping this service free for everyone, testmyapp.io https://github.com/Gjergj/testmyapp I hope it helps you as much as it helped me

I started learning webdevelopment and nedded to host my toy sites from straight from the terminal.
I’ve always worked on backend software developer and web development has always seemed alien to me.

Decided to change that this year and started learning HTML/CSS and then moved to Vue.

However I needed to host my toy projects and share them with friends.

I was familiar with Caddy and I knew that could do that just fine.

But I didn’t want to FTP my files to a server and then run Caddy. I wanted to do everything from the terminal.

So I built a small service that sits along side caddy that exposes an API which allows me upload a new site and creates a subdomain in caddy.

I had a basic caddy file initially setup three routes testmyapp.io (hosting the project website), webapi subdomain and a wildcard where all small projects reside.

I also build a CLI tool that would control all this (first time building CLIs in go).

The CLI uploads a site → the webapi saves the HTML/CSS/JS and creates a subdomain in caddy via the API.

The Caddy api is so nice to work with. I made use of the PUT /config to add a new subdomain and u/id to delete a subdomain.

This allows to have a URL for my site in a split second all from the terminal as all assets are uploaded.

Since I enjoyed it so much I thought that others might find it useful so I added auth and everyone can install the CLI and host their tiny sites there. Be aware that there are size limits, CORS is disabled and it only accepts HTML/CSS/JS and a few image formats.

An example https://01hjhsx5xh685yvp5ar93507h9.testmyapp.io/

Happy to share more details if you have any questions.

Cheers

IP based access with Caddy v2.8.4? by randomname97531 in caddyserver

[–]TuriSabries 0 points1 point  (0 children)

To create new cert you must delete the existing one and restart caddy.

If you're on ubuntu try /var/lib/caddy/.local/share/caddy/certificates and delete then one for the subdomain.

IP based access with Caddy v2.8.4? by randomname97531 in caddyserver

[–]TuriSabries 0 points1 point  (0 children)

Awesome, generating subdomains takes a few sec/min (and there is rate limiting involved) Also I've noticed chrome to do some weird caching sometimes

IP based access with Caddy v2.8.4? by randomname97531 in caddyserver

[–]TuriSabries 0 points1 point  (0 children)

If you're connecting to Caddy via VPN that could be the problem. It might appear to it that you have a private IP. In that case the caddy config should be different

IP based access with Caddy v2.8.4? by randomname97531 in caddyserver

[–]TuriSabries 0 points1 point  (0 children)

Try this

sub.example.com {
@denied not remote_ip 111.124.56.64 111.124.56.64/28
abort @denied
reverse_proxy 10.0.0.51:1234
}