[developer needed] GLIX: Custom domain manager for Glitch (WIP)

Glix Header Image

GLIX IS BACK

AND MORE POWERFUL THEN EVER

Glix is still work in progress and is scheduled to have a public beta release by sometime next week..

Until a public release is announced please do not change the topic category!

Features

  • Sign up / in / out
  • Domain verification (so nobody steals your domain).
  • Point a domain (or sub-domain) to any glitch project.
  • Remove your domain (or sub-domain) whenever you feel like it, no need to email anyone.
  • A healthcheck entrypoint www.example.com/glix/healthcheck, to check whether or not Glix is powering your domain. (This WILL NOT ping your project).
  • Add a pointer on-demand using our free API!

Beta Accounts

Hence the first release of Glix will be a public beta; there is no need to send an application; it will be open for everyone!

Progress

:green_circle: - Done

:yellow_circle: - Doing

:red_circle: - To Do

Progress (this is a long list!)

This list will be updated 1-3 times a day if progress has been made!

This list will automatically be sorted by it's status, doing will appear on top, done will appear on bottom, to do will appear in the middle.

# Status Task Description

  37  

  :yellow_circle:  

API
Domains - Add

Adds a domain.

  38  

  :yellow_circle:  

API
Domains - Remove

Removes a domain.

  19  

  :red_circle:  

API
Google Recaptcha

Verify that the end-user is a person.

  20  

  :red_circle:  

API
Admin - User - Get

Get information about a user.

  21  

  :red_circle:  

API
Admin - User - Edit

Edit a user’s information, such as their password. NOTE: Passwords are hashed using Argon2id, therefore they cannot be seen by an administrator.

  22  

  :red_circle:  

API
Admin - User - Delete

Delete a user, with their domains and pointers.

  23  

  :red_circle:  

API
Admin - User - Promote

Promote a user to either an admin or a beta account.

  24  

  :red_circle:  

API
Admin - User - Delete API key

Deletes a user’s API key(s)

  25  

  :red_circle:  

API
Admin - Domains - Add

Forcefully add a domain to the database, linked to a user.

  26  

  :red_circle:  

API
Admin - Domains - Verify

Forcefully verify a domain.

  27  

  :red_circle:  

API
Admin - Domains - Delete

Delete a domain and the pointers that use the given domain.

  28  

  :red_circle:  

API
Admin - Pointers - Set

Set a pointer from any domain to any website (not just Glitch).

  29  

  :red_circle:  

API
Admin - Pointers - Unset

Unset any pointer.

  30  

  :red_circle:  

API
Admin - Send Mail

Send an email to any address.

  34  

  :red_circle:  

API
User - Change Password

Changes the current user’s password.

  35  

  :red_circle:  

API
User - Forgot Password

Sends a reset link to the user’s email (implements recaptcha).

  36  

  :red_circle:  

API
User - Delete

Destruct self (implements recaptcha and email verification).

  40  

  :red_circle:  

API
Pointers - Set

Set a pointer to a glitch project.

  41  

  :red_circle:  

API
Pointers - Unset

Unset a pointer.

  42  

  :red_circle:  

Frontend
WEBSITE

TODO: Write tasks.

  1  

  :green_circle:  

Internal
Caddy API

Interact with the reverse-proxy.

  2  

  :green_circle:  

Internal
User - Create

Create a new user.

  3  

  :green_circle:  

Internal
User - Fetch

Fetch a user from the database, whether if it is by email or id.

  4  

  :green_circle:  

Internal
User - Delete

Delete a user.

  5  

  :green_circle:  

Internal
User - Modify

Modify an existing user.

  6  

  :green_circle:  

Internal
User - Send Verification Mail

Send a verification mail.

  7  

  :green_circle:  

Internal
User - Check Password

Check if a raw password, when hashed, matches the one stored in the database.

  8  

  :green_circle:  

Internal
User - Send Mail

Send a user a mail.

  9  

  :green_circle:  

Internal
User - Create API key

Create an API key for a user.

  10  

  :green_circle:  

Internal
User - Delete API key

Deletes an API key belongig to a user.

  11  

  :green_circle:  

Internal
Mail

Send a mail.

  12  

  :green_circle:  

Internal
Domains - Lookup

Get the text records of a domain; this is used when verifying that a domain belongs to a user.

  13  

  :green_circle:  

Internal
Domains - Add

Add a domain to the database, linked to a user.

  14  

  :green_circle:  

Internal
Domains - Remove

Delete a domain completely from the database, and all subsequent hosts.

  15  

  :green_circle:  

Internal
Domains - Verify

Verify the domain to allow the domain to be used in the reverse-proxy.

  16  

  :green_circle:  

Internal
Domains - Remove Unverified

Remove unverified domains from a user after 48 hours of staying unverified, the user will not be able to add the domain again after a failed attempt to verify the domain. A user will have to contact support if they fail.

  17  

  :green_circle:  

Internal
Pointers - Set

Set a pointer to a glitch project.

  18  

  :green_circle:  

Internal
Pointers - Unset

Remove a pointer.

  31  

  :green_circle:  

API
User - Sign up

Create a new user (implements recaptcha).

  32  

  :green_circle:  

API
User - Verify

Very a user with a given code (sent via email)

  33  

  :green_circle:  

API
User - Sign in

Signs in a user and sets encrypted cookies token and refresh-token (implements recaptcha).

  39  

  :green_circle:  

API
Domains - Get Verification Text

Get the required verification text (which should be added as a TXT record on the domain.

7 Likes

i’m moving this to #the-gallery because this i’ll make a lot of people very happy!

It’s not ready, it’s an upcoming project, which doesn’t belong in the gallery: A new topic for category and upcoming projects

okay, moved back to #uncategorized

'When you say it’ll be public beta, does that mean we can remix it? and if so what services would we need?

Nope. No remixes required. Instead, you use @ihack2712’s ‘Glix’ website to manage your domains. Probably won’t be open source??? And probably not ran on Glitch

6 Likes

@EddiesTech is right! Glix is not hosted on Glitch due to Glitch’s technical limitations. The two main reasons it is not hosted on Glitch are:

  1. Availability (1000 project hours, wake up time, etc.)
  2. You can’t do a reverse-proxy from a glitch project to another glitch project that allows dynamic domain allocation.

Therefore, Glix is hosted on my VPS 24/7 with a 99.99% uptime guarantee. I have been thinking whether or not I want to open source Glix and to be honest, I’m not completely sure yet.

Open-sourcing Glix is indeed a good thing because then everyone can make their own mirrors or reverse-proxy, but on the other side it opens up the possibility for competition, and as a ‘business’ person it would not be a good idea.

3 Likes

Either way i can’t wait until the open beta release!

3 Likes

Me neither! :smiley:  

3 Likes

I dont use glitch that much anymore but I’d still like to give this a shot.

I might use this when I set up a cluster of glitch and repl, servers to loadbalance an application.
This will involve some weird setup so I might need some middleware…

4 Likes

For anyone wondering how the progress is updated, it’s done by rendering EJS to HTML and manually edited:

2 Likes

we can use html

I forgot...



this makes me think of new ways to bypass the character limit

Status Update

I’m currently working on being able to send emails from Deno!

However the only library in Deno doesn’t support neither of my email services which are Zoho and MailGun, I’ll therefore be creating a gmail account which should work.

EDIT:

I’ve tested this using Google Mail and it works, mails will be sent thru glix.ihacks.dev@gmail.com.

4 Likes

Emails are now finally working!

6 Likes

YAY! When will it be released for beta?

Sometime next week, the design will look really ugly, my main focus is getting the internal tools and public APIs ready, when that is done the public beta release will be made. A better GUI will come later. :wink:

Also a reminder:

You can check my current progress :slight_smile:

5 Likes

I decided to do a rewrite of all my progress due to messy code and making the code more OOP based. The public release might take 1-3 extra days!

Erm. Verification via gmail? When you have your own domain?