Create a 4SP Link.
Host your own instance of 4simpleproblems. Choose your preferred provider below to get started.
Dynu & GitHub Pages
This method uses GitHub Pages for hosting and Dynu to create a custom, free URL for your site.
Step 0: Create a GitHub account
Go to github.com and create an account.
Step 1: Fork the main 4SP repository
Go to the current 4SP GitHub repository. Click Fork to your own account.
Step 2: Turn on GitHub Pages
Go to Settings > Pages. Set Source to main and root. Save.
Step 3: Fork the games repositories
Fork the GAMES repository and all strongdog repositories (2-5).
Step 4: Create Dynu Domain
Create a DDNS service (Option 1) on Dynu.com.
Step 5: Link Dynu
Create a CNAME record in Dynu pointing to your github.io URL.
Step 6: Get Authorized
DM your link to 4SP on Discord.
GitHub Pages (Standard)
The simplest method. Host directly on GitHub using a standard github.io address.
Step 1: Fork Repository
Fork the main 4SP repository to your GitHub account.
Step 2: Enable Pages
In Settings > Pages, enable hosting from the main branch.
Step 3: Fork the games repositories
Fork the GAMES repository and all strongdog repositories (2-5).
Step 4: Authorize
Send your username.github.io link to 4SP on Discord.
Cloudflare Workers
Create a high-speed proxy application using Cloudflare Workers.
Step 1: Create Application
Sign up or log in to Cloudflare.
- On the dashboard sidebar, select Workers & Pages.
- Click Create application.
- Click Create Worker (or "Start with Hello World").
- Change the name of the subdomain to anything you want (this is your link).
- Click Deploy.
Step 2: Edit Code
You are now on the Production page. Click Edit code and wait for the editor to load. Replace the existing code with the script below:
export default {
async fetch(request, env, ctx) {
const ORIGIN_HOST = "4simpleproblems.kozow.com";
const url = new URL(request.url);
// Build the origin URL with full path + query
const originUrl = new URL(request.url);
originUrl.hostname = ORIGIN_HOST;
originUrl.protocol = "https:";
// Forward request to origin
const response = await fetch(originUrl.toString(), {
method: request.method,
headers: request.headers,
body: request.method === "GET" || request.method === "HEAD"
? null
: request.body,
redirect: "manual",
});
// Clone headers so we can safely modify them
const newHeaders = new Headers(response.headers);
// Optional but recommended
newHeaders.set("X-Proxied-By", "Cloudflare-Worker-4SP");
newHeaders.set("Cache-Control", "public, max-age=600");
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders,
});
}
};
Step 3: Deploy
Configure the target URL in the code you just pasted.
- Click Save and Deploy in the top right corner.
Step 4: Authorize
Copy your final Cloudflare URL and send it to the 4SP Discord account to be authorized.
Vercel
Deploy directly from GitHub using Vercel.
Step 1: Create Project
Login to Vercel, click Add New > Project.
Step 2: Import Code
Import the code from the 4SP GitHub Organization repositories.
Step 3: Deploy
Name your project and click Deploy. DM the URL to 4SP on Discord.
Fastly
Create a CDN service pointing to 4SP.
Step 1: Create Service
Login to Fastly. Click Create Service > CDN.
Step 2: Set Domain
Enter your Dynu domain or use {name}.global.ssl.fastly.net.
Step 3: Set Origin
Set Host/Origin to the URL: 4simpleproblems.kozow.com.
Step 4: Activate
Click Activate. DM the URL to 4SP on Discord.
Get a Free Domain (Dynu)
Create a free custom domain to use with any service.
Step 1: Sign Up
Create an account at dynu.com.
Step 2: Create URL
Go to DDNS Services > Add. Fill out Option 1 with your desired name.