Spaces:
Sleeping
Sleeping
Alex Scott
commited on
Commit
·
46c7a16
1
Parent(s):
5868073
rebrand space to incognito
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .changeset/config.json +12 -0
- .dockerignore +16 -0
- .github/ISSUE_TEMPLATE/ISSUE-TEMPLATE.md +32 -0
- .github/ISSUE_TEMPLATE/config.yml +5 -0
- .github/ISSUE_TEMPLATE/package-lock.json +50 -0
- .github/PULL_REQUEST_TEMPLATE/pull_request_template.md +14 -0
- .github/workflows/docker-build.yml +48 -0
- .github/workflows/release.yml +44 -0
- .gitignore +26 -2
- .gitmodules +0 -3
- .gitpod.yml +10 -0
- CHANGELOG.md +54 -0
- Dockerfile +16 -14
- README.md +241 -46
- astro.config.ts +98 -0
- config.example.toml +11 -0
- deno.jsonc +67 -0
- deno.lock +0 -0
- docker-builds.yml +19 -0
- docker-compose.build.yml +27 -0
- docker-compose.yml +24 -0
- package.json +9 -45
- public/favicon.svg +0 -37
- public/flash/instantiateFlash.js +0 -33
- public/game.css +0 -73
- public/icons/canvas.png +0 -0
- public/icons/classlink.png +0 -0
- public/icons/classroom.png +0 -0
- public/icons/clever.jpg +0 -0
- public/icons/drive.png +0 -0
- public/icons/edgenuity.png +0 -0
- public/icons/google.png +0 -0
- public/icons/schoology.webp +0 -0
- public/icons/youtube.png +0 -0
- public/iframe.css +0 -11
- public/img/checkmark.svg +0 -3
- public/img/games/fullscreen.svg +0 -4
- public/img/games/pin-outline.svg +0 -3
- public/img/games/pin.svg +0 -3
- public/img/nav/backwards.svg +0 -5
- public/img/nav/close.svg +0 -3
- public/img/nav/forwards.svg +0 -5
- public/img/nav/reload.svg +0 -3
- public/img/nav/share.svg +0 -15
- public/img/search.svg +0 -3
- public/logo.svg +16 -0
- public/marketplace/adblock/banner.png +0 -0
- public/marketplace/adblock/icon.png +0 -0
- public/marketplace/adblock/index.js +0 -0
- public/marketplace/atom-one-dark/logo.png +0 -0
.changeset/config.json
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
|
3 |
+
"changelog": ["@changesets/changelog-github", { "repo": "titaniumnetwork-dev/incognito" }],
|
4 |
+
"commit": false,
|
5 |
+
"fixed": [],
|
6 |
+
"linked": [],
|
7 |
+
"access": "public",
|
8 |
+
"baseBranch": "main",
|
9 |
+
"updateInternalDependencies": "patch",
|
10 |
+
"ignore": [],
|
11 |
+
"privatePackages": { "version": true, "tag": true }
|
12 |
+
}
|
.dockerignore
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
node_modules/
|
2 |
+
.vscode
|
3 |
+
npm-debug.log
|
4 |
+
yarn-error.log
|
5 |
+
.github/
|
6 |
+
.env.example
|
7 |
+
.env
|
8 |
+
dist/
|
9 |
+
.git/
|
10 |
+
.astro/
|
11 |
+
~/
|
12 |
+
.gitignore
|
13 |
+
biome.json
|
14 |
+
docker-compose.yml
|
15 |
+
Dockerfile
|
16 |
+
README.md
|
.github/ISSUE_TEMPLATE/ISSUE-TEMPLATE.md
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
name: Bug report Or Feature request
|
3 |
+
about: Report a Bug or submit a Feature that you would like to see
|
4 |
+
title: "[BUG/Feature Request]"
|
5 |
+
labels: ''
|
6 |
+
assignees: ''
|
7 |
+
---
|
8 |
+
|
9 |
+
**Note: for support questions, please use our [Discord](https://discord.gg/unblock)**. This repository's issues are reserved for feature requests and bug reports.
|
10 |
+
|
11 |
+
- **I'm submitting a ...**
|
12 |
+
- [ ] bug report
|
13 |
+
- [ ] feature request
|
14 |
+
- [ ] support request => Please do not submit support request here, see note at the top of this template.
|
15 |
+
|
16 |
+
- **Do you want to request a _feature_ or report a _bug_?**
|
17 |
+
|
18 |
+
- **What is the current behavior?**
|
19 |
+
|
20 |
+
- **If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem**
|
21 |
+
|
22 |
+
- **What is the expected behavior?**
|
23 |
+
|
24 |
+
- **What is the motivation / use case for changing the behavior?**
|
25 |
+
|
26 |
+
- **Please tell us about your environment:**
|
27 |
+
|
28 |
+
- Version: 2.0.0-beta.X
|
29 |
+
- Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
|
30 |
+
- Language: [all | TypeScript X.X | ES6/7 | ES5 | Dart]
|
31 |
+
|
32 |
+
- **Other information** (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)
|
.github/ISSUE_TEMPLATE/config.yml
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
blank_issues_enabled: false
|
2 |
+
contact_links:
|
3 |
+
- name: Communtiy Support
|
4 |
+
url: https://discord.gg/unblock
|
5 |
+
about: Please ask and answer questions here.
|
.github/ISSUE_TEMPLATE/package-lock.json
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "incognito",
|
3 |
+
"version": "1.1.5",
|
4 |
+
"lockfileVersion": 3,
|
5 |
+
"requires": true,
|
6 |
+
"packages": {
|
7 |
+
"": {
|
8 |
+
"name": "incognito",
|
9 |
+
"version": "1.1.5",
|
10 |
+
"dependencies": {
|
11 |
+
"@iconify-json/fa-solid": "^1.1.8",
|
12 |
+
"@iconify-json/fa6-solid": "^1.1.21",
|
13 |
+
"@iconify-json/mdi": "^1.2.1"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"node_modules/@iconify-json/fa-solid": {
|
17 |
+
"version": "1.2.1",
|
18 |
+
"resolved": "https://registry.npmjs.org/@iconify-json/fa-solid/-/fa-solid-1.2.1.tgz",
|
19 |
+
"integrity": "sha512-eEcnCb6yjRJ0bZrQQZOvO9P5PYCGujz2V8PpiIxBSlm6xqoVLNtOfUyPr6xZD4zWeW7H3cmWi2ZXSzqxQ5e4lw==",
|
20 |
+
"license": "CC-BY-4.0",
|
21 |
+
"dependencies": {
|
22 |
+
"@iconify/types": "*"
|
23 |
+
}
|
24 |
+
},
|
25 |
+
"node_modules/@iconify-json/fa6-solid": {
|
26 |
+
"version": "1.2.3",
|
27 |
+
"resolved": "https://registry.npmjs.org/@iconify-json/fa6-solid/-/fa6-solid-1.2.3.tgz",
|
28 |
+
"integrity": "sha512-C5o8YJF+ekrS4wRb/6/0SE2KjRyJlCg++IOVC/fineiRinITivsmzFRNW1MQX2xfDZ1T7bxeKxLN6lcaTG3jGA==",
|
29 |
+
"license": "CC-BY-4.0",
|
30 |
+
"dependencies": {
|
31 |
+
"@iconify/types": "*"
|
32 |
+
}
|
33 |
+
},
|
34 |
+
"node_modules/@iconify-json/mdi": {
|
35 |
+
"version": "1.2.3",
|
36 |
+
"resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.2.3.tgz",
|
37 |
+
"integrity": "sha512-O3cLwbDOK7NNDf2ihaQOH5F9JglnulNDFV7WprU2dSoZu3h3cWH//h74uQAB87brHmvFVxIOkuBX2sZSzYhScg==",
|
38 |
+
"license": "Apache-2.0",
|
39 |
+
"dependencies": {
|
40 |
+
"@iconify/types": "*"
|
41 |
+
}
|
42 |
+
},
|
43 |
+
"node_modules/@iconify/types": {
|
44 |
+
"version": "2.0.0",
|
45 |
+
"resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
|
46 |
+
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
|
47 |
+
"license": "MIT"
|
48 |
+
}
|
49 |
+
}
|
50 |
+
}
|
.github/PULL_REQUEST_TEMPLATE/pull_request_template.md
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
- **Please check if the PR fulfills these requirements**
|
2 |
+
|
3 |
+
* [ ] Tests for the changes have been added (for bug fixes / features)
|
4 |
+
* [ ] Docs have been added / updated (for bug fixes / features)
|
5 |
+
|
6 |
+
- **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...)
|
7 |
+
|
8 |
+
- **What is the current behavior?** (You can also link to an open issue here)
|
9 |
+
|
10 |
+
- **What is the new behavior (if this is a feature change)?**
|
11 |
+
|
12 |
+
- **Does this PR introduce a breaking change?** (What changes might users need to make in their application due to this PR?)
|
13 |
+
|
14 |
+
- **Other information**:
|
.github/workflows/docker-build.yml
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Build Docker image
|
2 |
+
on:
|
3 |
+
push:
|
4 |
+
tags:
|
5 |
+
- v*
|
6 |
+
workflow_dispatch:
|
7 |
+
|
8 |
+
env:
|
9 |
+
REGISTRY: ghcr.io
|
10 |
+
IMAGE_NAME: ${{ github.repository }}
|
11 |
+
|
12 |
+
jobs:
|
13 |
+
build-and-push:
|
14 |
+
name: Build and push Docker image to registry
|
15 |
+
runs-on: ubuntu-latest
|
16 |
+
if: github.repository_owner == 'titaniumnetwork-dev'
|
17 |
+
permissions:
|
18 |
+
contents: write
|
19 |
+
packages: write
|
20 |
+
steps:
|
21 |
+
- name: Checkout repo
|
22 |
+
uses: actions/checkout@v3
|
23 |
+
- name: Setup docker buildx
|
24 |
+
uses: docker/setup-buildx-action@v3
|
25 |
+
- name: Login To registry ${{ env.REGISTRY }}
|
26 |
+
uses: docker/login-action@v3
|
27 |
+
with:
|
28 |
+
registry: ${{ env.REGISTRY }}
|
29 |
+
username: ${{ github.actor }}
|
30 |
+
password: ${{ github.token }}
|
31 |
+
- name: Extract Docker metadata
|
32 |
+
id: meta
|
33 |
+
uses: docker/metadata-action@v3
|
34 |
+
with:
|
35 |
+
images: ${{ env.REGISTRY }}/titaniumnetwork-dev/incognito
|
36 |
+
- name: Build and push
|
37 |
+
id: build-and-push
|
38 |
+
uses: docker/build-push-action@v4
|
39 |
+
with:
|
40 |
+
context: .
|
41 |
+
platforms: linux/amd64,linux/arm64
|
42 |
+
file: ./Dockerfile
|
43 |
+
name: incognito
|
44 |
+
push: ${{ github.event_name != 'pull_request' }}
|
45 |
+
tags: ${{ steps.meta.outputs.tags }}
|
46 |
+
labels: ${{ steps.meta.outputs.labels }}
|
47 |
+
cache-from: type=gha
|
48 |
+
cache-to: type=gha,mode=max
|
.github/workflows/release.yml
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Release
|
2 |
+
|
3 |
+
on:
|
4 |
+
push:
|
5 |
+
branches:
|
6 |
+
- main
|
7 |
+
workflow_dispatch:
|
8 |
+
|
9 |
+
defaults:
|
10 |
+
run:
|
11 |
+
shell: bash
|
12 |
+
|
13 |
+
env:
|
14 |
+
FORCE_COLOR: true
|
15 |
+
|
16 |
+
jobs:
|
17 |
+
changelog:
|
18 |
+
name: Release TAG
|
19 |
+
if: ${{ github.repository_owner == 'titaniumnetwork-dev' }}
|
20 |
+
runs-on: ubuntu-latest
|
21 |
+
permissions:
|
22 |
+
contents: write
|
23 |
+
id-token: write
|
24 |
+
steps:
|
25 |
+
- uses: actions/checkout@v4
|
26 |
+
|
27 |
+
- name: Setup Deno
|
28 |
+
uses: denoland/setup-deno@v2
|
29 |
+
with:
|
30 |
+
deno-version: 2.1.4
|
31 |
+
|
32 |
+
- name: Install dependencies
|
33 |
+
run: deno install --allow-scripts
|
34 |
+
|
35 |
+
- name: Create Release Pull Request or Publish
|
36 |
+
id: changesets
|
37 |
+
uses: changesets/action@v1
|
38 |
+
with:
|
39 |
+
version: deno task changeset:version
|
40 |
+
publish: deno task changeset:publish
|
41 |
+
commit: "[ci] release"
|
42 |
+
title: "[ci] release"
|
43 |
+
env:
|
44 |
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
.gitignore
CHANGED
@@ -1,8 +1,32 @@
|
|
1 |
# build output
|
2 |
dist/
|
|
|
|
|
|
|
3 |
.astro/
|
|
|
|
|
4 |
node_modules/
|
|
|
|
|
5 |
npm-debug.log*
|
|
|
|
|
|
|
|
|
|
|
6 |
.env
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
# build output
|
2 |
dist/
|
3 |
+
!vendor/scramjet/dist/
|
4 |
+
|
5 |
+
# generated types
|
6 |
.astro/
|
7 |
+
|
8 |
+
# dependencies
|
9 |
node_modules/
|
10 |
+
|
11 |
+
# logs
|
12 |
npm-debug.log*
|
13 |
+
yarn-debug.log*
|
14 |
+
yarn-error.log*
|
15 |
+
pnpm-debug.log*
|
16 |
+
|
17 |
+
# environment variables
|
18 |
.env
|
19 |
+
.env.production
|
20 |
+
|
21 |
+
#Config stuff
|
22 |
+
config.toml
|
23 |
+
|
24 |
+
# macOS-specific files
|
25 |
+
.DS_Store
|
26 |
+
|
27 |
+
# jetbrains setting folder
|
28 |
+
.idea/
|
29 |
+
|
30 |
+
# Stupidness
|
31 |
+
~/
|
32 |
+
|
.gitmodules
CHANGED
@@ -1,3 +0,0 @@
|
|
1 |
-
[submodule "public/games"]
|
2 |
-
path = public/games
|
3 |
-
url = https://github.com/wearrrrr/alu-games
|
|
|
|
|
|
|
|
.gitpod.yml
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# This configuration file was automatically generated by Gitpod.
|
2 |
+
# Please adjust to your needs (see https://www.gitpod.io/docs/introduction/learn-gitpod/gitpod-yaml)
|
3 |
+
# and commit this file to your remote git repository to share the goodness with others.
|
4 |
+
|
5 |
+
# Learn more from ready-to-use templates: https://www.gitpod.io/docs/introduction/getting-started/quickstart
|
6 |
+
|
7 |
+
tasks:
|
8 |
+
- init: npm install
|
9 |
+
|
10 |
+
|
CHANGELOG.md
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 1.0.0
|
2 |
+
- The initial rewrite to Astro. Includes:
|
3 |
+
- Fully static
|
4 |
+
- Easier to build
|
5 |
+
- Feels/is faster to use
|
6 |
+
- Fixes some bugs
|
7 |
+
- Among tons of other stuff
|
8 |
+
|
9 |
+
# 1.0.1
|
10 |
+
- Fixes the games and apps page looking weird
|
11 |
+
|
12 |
+
# 1.0.2
|
13 |
+
- Fixes Dockerfile issues
|
14 |
+
|
15 |
+
# 1.0.3
|
16 |
+
- Turns off Rammerhead by default for now
|
17 |
+
- Docker env fixes again
|
18 |
+
- SEO
|
19 |
+
|
20 |
+
# 1.0.4
|
21 |
+
- Bumps RH
|
22 |
+
- Fixes issues with bare-server-node
|
23 |
+
|
24 |
+
# 1.1.0
|
25 |
+
- Switches to Deno (mostly)
|
26 |
+
- General bug fixes
|
27 |
+
- Removes Rammerhead as an option and replaces it with Scramjet (coming soon)
|
28 |
+
- Removes bare server and adds libcurl as an option
|
29 |
+
- Adds a different Deno native server (Hono) - Command: `deno task start:standalone`
|
30 |
+
- Removes Masqr
|
31 |
+
- No more SSR, it's purely statically generated
|
32 |
+
- CI fixes and other general improvements
|
33 |
+
- Configuration is done via TOML over a bunch of environment vars
|
34 |
+
- Removes Biome in place of Deno's native formatter
|
35 |
+
- A better roadmap of what should be done in the future.
|
36 |
+
|
37 |
+
# 1.1.1
|
38 |
+
- Fixes a bug where if games aren't enabled it redirects to localhost:8080 over just /
|
39 |
+
- Fixes a bug where if games aren't enabled, it still loads and compresses images over just ignoring them.
|
40 |
+
|
41 |
+
# 1.1.2
|
42 |
+
- Fixes bugs with apps opening as the full url instead of just the correct link
|
43 |
+
- Fixes a bug with the iFrame panel where it copies & pastes the full link instead of just the normal link.
|
44 |
+
- Add Scramjet
|
45 |
+
|
46 |
+
# 1.1.3
|
47 |
+
- Add the notice that ScramJet is in beta and may break
|
48 |
+
|
49 |
+
# 1.1.4
|
50 |
+
- Add the ability to disable/enable SEO or selectively render/show it
|
51 |
+
- Adds the docker-builds.yml file to show the builds I am doing for the docker images.
|
52 |
+
|
53 |
+
# 1.1.5
|
54 |
+
- Fixes the games (mostly)
|
Dockerfile
CHANGED
@@ -1,18 +1,20 @@
|
|
1 |
-
FROM
|
2 |
|
3 |
-
WORKDIR /
|
4 |
-
|
5 |
-
# Copying package.json and pnpm-lock helps with caching
|
6 |
-
COPY package.json pnpm-lock.yaml ./
|
7 |
-
|
8 |
-
RUN npm i -g pnpm
|
9 |
-
|
10 |
-
RUN pnpm install
|
11 |
|
|
|
|
|
12 |
COPY . .
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM denoland/deno:debian-2.1.4
|
2 |
|
3 |
+
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
COPY package*.json .
|
6 |
+
COPY deno.jsonc .
|
7 |
COPY . .
|
8 |
|
9 |
+
ARG SEO
|
10 |
+
RUN apt update
|
11 |
+
RUN apt install -y python3 python3-pip libssl-dev build-essential python3-dev nodejs
|
12 |
+
RUN cp -n config.example.toml config.toml
|
13 |
+
RUN deno install --allow-scripts
|
14 |
+
RUN deno task build
|
15 |
+
RUN export TERM=xterm-256color
|
16 |
+
ENV PORT="8000"
|
17 |
+
VOLUME /app
|
18 |
+
EXPOSE 8000
|
19 |
+
ENTRYPOINT ["deno", "task"]
|
20 |
+
CMD ["start", "--color"]
|
README.md
CHANGED
@@ -1,67 +1,262 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
---
|
9 |
-
<p align="center">
|
10 |
-
<img src="https://github.com/titaniumnetwork-dev/Alu/assets/99224452/d740378b-3fba-4470-8f06-3eefdae8a313" alt="AluLogo" width="250"/>
|
11 |
-
</p>
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
-
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-

|
19 |
-

|
20 |
|
21 |
-
|
22 |
|
23 |
-
-
|
24 |
-
-
|
25 |
-
- 🏬 Marketplace for Themes and Extensions
|
26 |
-
- 🕶 Multiple site cloaking options
|
27 |
-
- 🎮 50+ Games to choose from
|
28 |
-
- 🌎 Support for **6** Languages
|
29 |
-
- 🚀 High performance
|
30 |
-
- 🔍 Multiple Search Engines to pick from
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
|
|
|
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
|
|
|
|
39 |
|
40 |
-
3.
|
41 |
|
42 |
-
|
|
|
|
|
43 |
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
|
|
|
48 |
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
-
|
52 |
|
53 |
-
|
|
|
|
|
|
|
54 |
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
-
|
59 |
-
- Astro from astro.build
|
60 |
-
- Typescript
|
61 |
-
- ExpressJS
|
62 |
-
- Prettier
|
63 |
-
- ESLint
|
64 |
|
65 |
-
|
|
|
|
|
|
|
|
|
66 |
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div align="center">
|
2 |
+
|
3 |
+
<img src="https://socialify.git.ci/titaniumnetwork-dev/incognito/image?description=1&font=Inter&forks=1&issues=1&language=1&name=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Dark" alt="ruby" width="640" height="320" />
|
4 |
+
|
5 |
+
<img alt="repo size" src="https://img.shields.io/github/repo-size/titaniumnetwork-dev/incognito?style=for-the-badge"></img>
|
6 |
+
<img alt="website status" src="https://img.shields.io/website?url=https%3A%2F%2Fincog.nebula.christmas&style=for-the-badge"></img>
|
7 |
+
<img alt="commit a week" src="https://img.shields.io/github/commit-activity/w/titaniumnetwork-dev/incognito?style=for-the-badge"></img>
|
8 |
+
<a href="https://github.com/caracal-js/incognito" target="_blank" rel="noopener noreferer"><img alt="original repo" src="https://img.shields.io/badge/Original-Repo-gray?style=for-the-badge&link=https%3A%2F%2Fgithub.com%2Fcaracal-js%2Fincognito"></img></a>
|
9 |
+
|
10 |
+
</div>
|
11 |
+
|
12 |
+
<div align="center">
|
13 |
+
<h2>Get Started</h2>
|
14 |
+
<a>To get started, press one of the buttons below to deploy Incog</a>
|
15 |
+
<br />
|
16 |
+
<br />
|
17 |
+
<a href="#terminal">
|
18 |
+
<img src="https://img.shields.io/badge/terminal-%23121011.svg?style=for-the-badge&logo=gnu-bash&logoColor=white" alt="Terminal">
|
19 |
+
</img>
|
20 |
+
</a>
|
21 |
+
<a href="#docker">
|
22 |
+
<img src="https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white" alt="Docker">
|
23 |
+
</img>
|
24 |
+
</a>
|
25 |
+
</div>
|
26 |
+
|
27 |
+
## NOTE:
|
28 |
+
|
29 |
+
- For Cyclic users this will unfortunatley _not_ work due to Cyclic supporting very little languages
|
30 |
+
- This will **NOT** deploy on Github Pages, Netlify, Vercel, Gitlab Pages or any other _static_ host
|
31 |
+
- This will **NOT** work on Render
|
32 |
+
|
33 |
+
---
|
34 |
+
|
35 |
+
## How to get links
|
36 |
+
|
37 |
+
[](https://discord.gg/unblock)
|
38 |
+
|
39 |
+
---
|
40 |
+
|
41 |
+
## Features
|
42 |
+
|
43 |
+
- Lots and lots of games
|
44 |
+
|
45 |
+
- Multiple Proxy "Backends":
|
46 |
+
- [Ultraviolet](https://github.com/titaniumnetwork-dev/ultraviolet)
|
47 |
+
- [Scramjet (coming soon)](https://github.com/mercuryworkshop/scramjet)
|
48 |
+
|
49 |
---
|
50 |
+
|
51 |
+
## Contributors
|
52 |
+
|
53 |
+
- [MotorTruck1221](https://motortruck1221.com) - Maintainer
|
54 |
+
- [Rifting](https://github.com/rifting) - Maintainer
|
55 |
+
- [caracal-js](https://github.com/caracal-js) - Original Creator
|
56 |
+
|
57 |
+
---
|
58 |
+
|
59 |
+
## Tech Stack
|
60 |
+
|
61 |
+
- [Astro](https://astro.build)
|
62 |
+
- [Fastify](https://fastify.dev)
|
63 |
+
- [Ultraviolet](https://github.com/titaniumnetwork-dev/ultraviolet)
|
64 |
+
- [Epoxy](https://github.com/mercuryworkshop/epoxy-tls)
|
65 |
+
- [Libcurl.js](https://github.com/ading2210/libcurl.js)
|
66 |
+
- [Hono](https://github.com/honojs) as a Deno native alternative to fastify. Run with commadn: `deno task start:standalone`
|
67 |
+
- [Deno 2.0](https://github.com/denoland/deno)
|
68 |
+
- HTML, CSS, and JavaScript (DUH)
|
69 |
+
|
70 |
+
---
|
71 |
+
|
72 |
+
## Roadmap
|
73 |
+
|
74 |
+
- [ ] - [Implement Scramjet](https://github.com/mercuryworkshop/scramjet)
|
75 |
+
- [ ] - Remove dependency on Fastify & switch completely to Hono
|
76 |
+
- [ ] - General codebase cleanup & remove all of the functions exisiting on `window`
|
77 |
+
- [ ] - Games page needs to be reworked due to more games
|
78 |
+
- [ ] - [i18n](https://github.com/alexandre-fernandez/astro-i18n)
|
79 |
+
- [ ] - More themes
|
80 |
+
- [ ] - Detatch from the [Original repo](https://github.com/caracal-js/incognito)
|
81 |
+
|
82 |
+
---
|
83 |
+
|
84 |
+
## Deployment
|
85 |
+
|
86 |
+
### Terminal
|
87 |
+
|
88 |
+
Prerequisites:
|
89 |
+
|
90 |
+
- Node & npm
|
91 |
+
- Deno 2.0
|
92 |
+
- Git
|
93 |
+
|
94 |
+
1. Clone the repo:
|
95 |
+
|
96 |
+
```bash
|
97 |
+
git clone https://github.com/titaniumnetwork-dev/incognito && cd incognito
|
98 |
+
```
|
99 |
+
|
100 |
+
2. Install all of the dependencies:
|
101 |
+
|
102 |
+
```bash
|
103 |
+
deno install --allow-scripts # This is here for sharp and other dependencies like bufferutil
|
104 |
+
```
|
105 |
+
|
106 |
+
3. Create a config.toml file
|
107 |
+
|
108 |
+
```bash
|
109 |
+
cp config.example.toml config.toml
|
110 |
+
```
|
111 |
+
|
112 |
+
4. Modify the config.toml file to you liking (docs [here](#config))
|
113 |
+
|
114 |
+
```
|
115 |
+
nano config.toml
|
116 |
+
```
|
117 |
+
|
118 |
+
5. Build the frontend:
|
119 |
+
|
120 |
+
```bash
|
121 |
+
deno task build
|
122 |
+
```
|
123 |
+
|
124 |
+
6. Start the server
|
125 |
+
|
126 |
+
```bash
|
127 |
+
deno task start
|
128 |
+
```
|
129 |
+
|
130 |
+
> [!NOTE]
|
131 |
+
> You can run `deno task start:standalone` to use Hono over Fastify, *recommended if you're using an external Wisp server like [Epoxy Server](https://github.com/mercuryworkshop/epoxy-tls)*
|
132 |
+
>
|
133 |
+
> You can run `deno task bstart` to build and start the server at the same time
|
134 |
+
>
|
135 |
+
> You can run `deno task bstart:standalone` to do the same as above but use the Hono server instead
|
136 |
+
>
|
137 |
+
> The Hono server has no built-in Wisp server so you'll have to provide one.
|
138 |
+
|
139 |
---
|
|
|
|
|
|
|
140 |
|
141 |
+
### Games
|
142 |
+
|
143 |
+
- By default, games are reverse proxied by the server
|
144 |
+
- Game assets are located [here](https://github.com/ruby-network/ruby-assets)
|
145 |
+
- To turn off Games, and access to them see [#config](#config)
|
146 |
+
|
147 |
+
### Docker
|
148 |
|
149 |
+
- There are two ways to deploy with docker:
|
150 |
+
- [Normal docker](#normal-docker)
|
151 |
+
- [Docker Compose](#docker-compose)
|
152 |
|
153 |
+
#### Normal Docker
|
|
|
|
|
154 |
|
155 |
+
Prerequisites:
|
156 |
|
157 |
+
- Git
|
158 |
+
- Docker
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
|
160 |
+
1. Clone the repo (skip if using prebuilt image):
|
161 |
|
162 |
+
```bash
|
163 |
+
git clone https://github.com/titaniumnetwork/incognito && cd incognito
|
164 |
+
```
|
165 |
|
166 |
+
2. Create an config.toml file (if using prebuilt image, copy the example from the repo):
|
167 |
|
168 |
+
```bash
|
169 |
+
cp config.example.toml config.toml
|
170 |
+
```
|
171 |
|
172 |
+
3. Modify the .env file to your liking (docs [here](#config))
|
173 |
|
174 |
+
```bash
|
175 |
+
nano config.toml
|
176 |
+
```
|
177 |
|
178 |
+
4. Build the docker image (skip if using prebuilt):
|
179 |
|
180 |
+
```bash
|
181 |
+
docker build -t incog:latest
|
182 |
+
```
|
183 |
|
184 |
+
5. Run the docker images:
|
185 |
+
|
186 |
+
- Prebuilt:
|
187 |
+
```bash
|
188 |
+
docker run --volume ./config.toml:/app/config.toml motortruck1221/incognito:latest
|
189 |
+
```
|
190 |
+
- Image you built yourself:
|
191 |
+
```bash
|
192 |
+
docker run --volume ./config.toml:/app/config.toml incog:latest
|
193 |
+
```
|
194 |
+
|
195 |
+
#### Docker Compose
|
196 |
+
|
197 |
+
Prerequisites:
|
198 |
+
|
199 |
+
- Git
|
200 |
+
- Docker w/compose
|
201 |
+
|
202 |
+
1. Clone the repo (skip if using prebuilt image):
|
203 |
+
|
204 |
+
```bash
|
205 |
+
git clone https://github.com/titaniumnetwork-dev/incognito
|
206 |
+
```
|
207 |
+
|
208 |
+
2. Create an config.toml file (if using prebuilt image, copy the example from the repo):
|
209 |
+
|
210 |
+
```bash
|
211 |
+
cp config.example.toml config.toml
|
212 |
+
```
|
213 |
+
|
214 |
+
3. Modify the config.toml file to your liking (docs on that [here](#config)]
|
215 |
+
|
216 |
+
```bash
|
217 |
+
nano config.toml
|
218 |
+
```
|
219 |
+
|
220 |
+
4. Build the docker image (skip if using prebuilt):
|
221 |
+
|
222 |
+
```bash
|
223 |
+
docker compose -f ./docker-compose.build.yml build
|
224 |
+
```
|
225 |
+
|
226 |
+
5. Run the docker image:
|
227 |
+
|
228 |
+
- Prebuilt:
|
229 |
+
```bash
|
230 |
+
docker compose up
|
231 |
+
```
|
232 |
+
- Image you built yourself:
|
233 |
+
```bash
|
234 |
+
docker compose -f ./docker-compose.build.yml up
|
235 |
+
```
|
236 |
+
|
237 |
+
---
|
238 |
|
239 |
+
## Config
|
240 |
|
241 |
+
- The config is rather simple and quick, it's done in TOML and there are only two object:
|
242 |
+
- `buildOpts` & `server` below there will be 2 tables showcasing the possible values.
|
243 |
+
> [!NOTE]
|
244 |
+
> As it says, `buildOpts` will only apply when *building* the website. This can be changed in the docker-compose files.
|
245 |
|
246 |
+
##### Build Opts
|
247 |
+
| Type | Default | Description | Can be overwritten by ENV var |
|
248 |
+
|------|---------|------------------------------------|-------------------------------|
|
249 |
+
| games | `true` | Disables or enables the games page | - [ ] - No |
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
+
##### Server
|
252 |
+
| Type | Default | Description | Can be overwritten by ENV var |
|
253 |
+
|------|---------|-----------------------------------------------------------------------------------------------------------------|------------------------------|
|
254 |
+
| port | `8000` | Change the default port. *Note: the environment var `PORT` takes precedence* | - [x] - Yes |
|
255 |
+
| wisp | `true` | Disable or enables the in built wisp server. *Note: when using the Hono server there is no built-in wisp server | - [ ] - No |
|
256 |
|
257 |
+
##### SEO
|
258 |
+
| Type | Default | Description | Can be overwritten by ENV var | Is used at build time |
|
259 |
+
---------|-------------------------|--------------------------------------------------------------------------|-------------------------------|-----------------------|
|
260 |
+
| SEO | `false` | Change whether or not to enabled SEO | - [x] - Yes - `SEO` | - [x] - Yes |
|
261 |
+
| DOMAIN | `http://localhost:8000` | When the `both` option is enable, only show the SEO stuff on this domain | - [x] - Yes - `DOMAIN` | - [ ] - No |
|
262 |
+
| BOTH | `false` | Works in tandem with option `DOMAIN` | - [x] - Yes - `BOTH` | - [ ] - No |
|
astro.config.ts
ADDED
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import sitemap from '@astrojs/sitemap';
|
2 |
+
import tailwind from '@astrojs/tailwind';
|
3 |
+
import { baremuxPath } from '@mercuryworkshop/bare-mux/node';
|
4 |
+
//@ts-expect-error No types
|
5 |
+
import { epoxyPath } from '@mercuryworkshop/epoxy-transport';
|
6 |
+
import { libcurlPath } from '@mercuryworkshop/libcurl-transport';
|
7 |
+
import playformCompress from '@playform/compress';
|
8 |
+
import { uvPath } from '@titaniumnetwork-dev/ultraviolet';
|
9 |
+
import icon from 'astro-icon';
|
10 |
+
import robotsTxt from 'astro-robots-txt';
|
11 |
+
import { defineConfig, envField } from 'astro/config';
|
12 |
+
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
13 |
+
//we need the buildOpts from here : D
|
14 |
+
import { parsedDoc } from './server/config/config.ts';
|
15 |
+
const scramjetPath = `${import.meta.dirname}/vendor/scramjet/dist/`
|
16 |
+
|
17 |
+
// https://astro.build/config
|
18 |
+
export default defineConfig({
|
19 |
+
site: Deno.env.get('SITE') || 'https://localhost:8080',
|
20 |
+
integrations: [
|
21 |
+
tailwind(),
|
22 |
+
robotsTxt(),
|
23 |
+
sitemap(),
|
24 |
+
icon(),
|
25 |
+
playformCompress({
|
26 |
+
CSS: false,
|
27 |
+
HTML: true,
|
28 |
+
Image: true,
|
29 |
+
JavaScript: true,
|
30 |
+
SVG: true,
|
31 |
+
}),
|
32 |
+
],
|
33 |
+
output: 'static',
|
34 |
+
env: {
|
35 |
+
schema: {
|
36 |
+
GAMES_LINK: envField.boolean({
|
37 |
+
context: 'client',
|
38 |
+
access: 'public',
|
39 |
+
default: parsedDoc.buildOpts.games,
|
40 |
+
}),
|
41 |
+
SEO: envField.boolean({
|
42 |
+
context: 'client',
|
43 |
+
access: 'public',
|
44 |
+
default: Boolean(Deno.env.get('SEO')) || parsedDoc.seo.enabled
|
45 |
+
})
|
46 |
+
},
|
47 |
+
},
|
48 |
+
vite: {
|
49 |
+
plugins: [
|
50 |
+
viteStaticCopy({
|
51 |
+
targets: [
|
52 |
+
{
|
53 |
+
src: `${uvPath}/**/*`.replace(/\\/g, '/'),
|
54 |
+
dest: 'uv',
|
55 |
+
overwrite: false,
|
56 |
+
},
|
57 |
+
{
|
58 |
+
src: `${epoxyPath}/**/*`.replace(/\\/g, '/'),
|
59 |
+
dest: 'epoxy',
|
60 |
+
overwrite: false,
|
61 |
+
},
|
62 |
+
{
|
63 |
+
src: `${libcurlPath}/**/*`.replace(/\\/g, '/'),
|
64 |
+
dest: 'libcurl',
|
65 |
+
overwrite: false,
|
66 |
+
},
|
67 |
+
{
|
68 |
+
src: `${baremuxPath}/**/*`.replace(/\\/g, '/'),
|
69 |
+
dest: 'baremux',
|
70 |
+
overwrite: false,
|
71 |
+
},
|
72 |
+
{
|
73 |
+
src: `${scramjetPath}/**/*`.replace(/\\/g, '/'),
|
74 |
+
dest: 'scram',
|
75 |
+
overwrite: false
|
76 |
+
}
|
77 |
+
],
|
78 |
+
}),
|
79 |
+
],
|
80 |
+
server: {
|
81 |
+
proxy: {
|
82 |
+
'/wisp/': {
|
83 |
+
target: 'wss://ruby.rubynetwork.co/wisp/',
|
84 |
+
changeOrigin: true,
|
85 |
+
ws: true,
|
86 |
+
rewrite: (path) => path.replace(/^\/wisp\//, ''),
|
87 |
+
},
|
88 |
+
'/gms/': {
|
89 |
+
target: 'https://rawcdn.githack.com/ruby-network/ruby-assets/main/',
|
90 |
+
changeOrigin: true,
|
91 |
+
ws: true,
|
92 |
+
secure: false,
|
93 |
+
rewrite: (path) => path.replace(/^\/gms\//, ''),
|
94 |
+
},
|
95 |
+
},
|
96 |
+
},
|
97 |
+
},
|
98 |
+
});
|
config.example.toml
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[buildOpts]
|
2 |
+
games = true
|
3 |
+
|
4 |
+
[server]
|
5 |
+
wisp = true
|
6 |
+
port = 8000
|
7 |
+
|
8 |
+
[seo]
|
9 |
+
enabled = false
|
10 |
+
both = false
|
11 |
+
domain = "http://localhost:8000"
|
deno.jsonc
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"$schema": "https://deno.land/x/[email protected]/cli/schemas/config-file.v1.json",
|
3 |
+
"nodeModulesDir": "auto",
|
4 |
+
"tasks": {
|
5 |
+
"dev:server": "deno run -A --watch server/server.ts",
|
6 |
+
"dev:client": "astro dev",
|
7 |
+
"dev": "deno task dev:server & deno task dev:client",
|
8 |
+
"build:seo": "deno task check:frontend && SEO=true astro build --outDir dist/seo/ && SEO=false astro build --outDir dist/noseo/",
|
9 |
+
"build": "deno task check:frontend && astro build",
|
10 |
+
"start": "deno run --allow-net --allow-read --allow-env --allow-ffi --allow-sys server/server.ts",
|
11 |
+
"bstart": "deno task build && deno task start",
|
12 |
+
"bstart:seo": "deno task build:seo && deno task start",
|
13 |
+
"bstart:standalone": "deno task build && deno task start:standalone",
|
14 |
+
"bstart:standalone:seo": "deno task build:seo && deno task start:standalone",
|
15 |
+
"start:standalone": "deno run --allow-net --allow-read --allow-env server/standalone/standalone.ts",
|
16 |
+
"check:frontend": "astro check",
|
17 |
+
"check:server": "deno check server/**/*.ts",
|
18 |
+
"check": "deno task check:frontend && deno task check:server",
|
19 |
+
"changeset:version": "changeset version",
|
20 |
+
"changeset:publish": "changeset publish"
|
21 |
+
},
|
22 |
+
"fmt": {
|
23 |
+
"indentWidth": 4,
|
24 |
+
"lineWidth": 100,
|
25 |
+
"semiColons": true,
|
26 |
+
"proseWrap": "preserve",
|
27 |
+
"singleQuote": true
|
28 |
+
},
|
29 |
+
"imports": {
|
30 |
+
// Astro deps
|
31 |
+
"@astrojs/check": "npm:@astrojs/check@^0.9.4",
|
32 |
+
"@astrojs/sitemap": "npm:@astrojs/sitemap@^3.2.1",
|
33 |
+
"@astrojs/tailwind": "npm:@astrojs/tailwind@^5.1.3",
|
34 |
+
"astro": "npm:astro@^5.0.5",
|
35 |
+
"astro-seo": "npm:astro-seo@^0.8.4",
|
36 |
+
"astro-icon": "npm:astro-icon@^1.1.4",
|
37 |
+
"astro-robots-txt": "npm:astro-robots-txt@^1.0.0",
|
38 |
+
"tailwindcss": "npm:tailwindcss@^3.4.16",
|
39 |
+
"vite-plugin-static-copy": "npm:vite-plugin-static-copy@^2.2.0",
|
40 |
+
"@iconify-json/fa-solid": "npm:@iconify-json/fa-solid@^1.2.0",
|
41 |
+
"@iconify-json/fa6-solid": "npm:@iconify-json/fa6-solid@^1.2.2",
|
42 |
+
"@iconify-json/mdi": "npm:@iconify-json/[email protected]",
|
43 |
+
"@playform/compress": "npm:@playform/compress@^0.1.6",
|
44 |
+
"sharp": "npm:sharp@^0.33.5",
|
45 |
+
//Server stuff
|
46 |
+
"@fastify/compress": "npm:@fastify/compress@^8.0.1",
|
47 |
+
"@fastify/cookie": "npm:@fastify/cookie@^11.0.1",
|
48 |
+
"@fastify/http-proxy": "npm:@fastify/http-proxy@^10.0.1",
|
49 |
+
"@fastify/middie": "npm:@fastify/middie@^9.0.2",
|
50 |
+
"@fastify/static": "npm:@fastify/static@^8.0.2",
|
51 |
+
"fastify": "npm:fastify@^5.1.0",
|
52 |
+
//UV, bare-mux, RH, corlink & wisp
|
53 |
+
"@mercuryworkshop/bare-mux": "npm:@mercuryworkshop/bare-mux@^2.1.7",
|
54 |
+
"@mercuryworkshop/epoxy-transport": "npm:@mercuryworkshop/epoxy-transport@^2.1.27",
|
55 |
+
"@mercuryworkshop/libcurl-transport": "npm:@mercuryworkshop/libcurl-transport@^1.3.14",
|
56 |
+
"@titaniumnetwork-dev/ultraviolet": "npm:@titaniumnetwork-dev/ultraviolet@^3.2.10",
|
57 |
+
"wisp-server-node": "npm:wisp-server-node@^1.1.7",
|
58 |
+
//random other deps
|
59 |
+
"chalk": "npm:chalk@^5.3.0",
|
60 |
+
"@changesets/cli": "npm:@changesets/cli@^2.27.10",
|
61 |
+
"smol-toml": "npm:smol-toml@^1.3.1",
|
62 |
+
"@types/node": "npm:@types/node@^22.9.0",
|
63 |
+
"gradient-string": "npm:gradient-string@^3.0.0",
|
64 |
+
"@types/deno": "npm:@types/deno@^2.0.0",
|
65 |
+
"typescript": "npm:typescript@^5.7.2" //I need this for astro typechecking for some damn reason
|
66 |
+
}
|
67 |
+
}
|
deno.lock
ADDED
The diff for this file is too large to render.
See raw diff
|
|
docker-builds.yml
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3'
|
2 |
+
|
3 |
+
# This file is for building the docker images and pushing them to the registry. You can safely ignore this
|
4 |
+
|
5 |
+
services:
|
6 |
+
incognito:
|
7 |
+
image: motortruck1221/incognito:latest
|
8 |
+
build:
|
9 |
+
context: .
|
10 |
+
dockerfile: Dockerfile
|
11 |
+
container_name: incognito
|
12 |
+
restart: unless-stopped
|
13 |
+
incognito-versioned:
|
14 |
+
image: motortruck1221/incognito:1.1.5
|
15 |
+
build:
|
16 |
+
context: .
|
17 |
+
dockerfile: Dockerfile
|
18 |
+
container_name: incognito
|
19 |
+
restart: unless-stopped
|
docker-compose.build.yml
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3'
|
2 |
+
|
3 |
+
services:
|
4 |
+
incognito:
|
5 |
+
image: motortruck1221/incognito:latest
|
6 |
+
build:
|
7 |
+
context: .
|
8 |
+
dockerfile: Dockerfile
|
9 |
+
container_name: incognito
|
10 |
+
restart: unless-stopped
|
11 |
+
ports:
|
12 |
+
# The ports work like this: Host:Container (DO NOT MODIFY THE CONTAINER PORT)
|
13 |
+
- '8081:8000'
|
14 |
+
volumes:
|
15 |
+
- ./config.toml:/app/config.toml # this can be removed if you need the image to be stateless
|
16 |
+
#environment:
|
17 |
+
# - SEO=false - Enabled to turn on SEO in the build
|
18 |
+
# - BOTH=false - Use if you want both the SEO and non-seo versions
|
19 |
+
# - DOMAIN=https://incog.works - Use if you want SEO (when using the both option) to work properly
|
20 |
+
|
21 |
+
# The below allows you to change any of the `buildOpts` config options and use them.
|
22 |
+
#command:
|
23 |
+
# - bstart - Use if using Fastify
|
24 |
+
# - bstart:standalone - Use if using Hono
|
25 |
+
# See docs for differences
|
26 |
+
# - start:standalone - Command to use Hono over fastify
|
27 |
+
# See docs for differences between the servers
|
docker-compose.yml
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3'
|
2 |
+
|
3 |
+
services:
|
4 |
+
incognito:
|
5 |
+
image: motortruck1221/incognito:latest
|
6 |
+
container_name: incognito
|
7 |
+
restart: unless-stopped
|
8 |
+
ports:
|
9 |
+
# The ports work like this: Host:Container (DO NOT MODIFY THE CONTAINER PORT)
|
10 |
+
- '8081:8000'
|
11 |
+
volumes:
|
12 |
+
- ./config.toml:/app/config.toml # This can be removed if you need the image to be stateless
|
13 |
+
#environment:
|
14 |
+
# - SEO=false - Enabled to turn on SEO in the build
|
15 |
+
# - BOTH=false - Use if you want both the SEO and non-seo versions
|
16 |
+
# - DOMAIN=https://incog.works - Use if you want SEO (when using the both option) to work properly
|
17 |
+
|
18 |
+
# The below allows you to change any of the `buildOpts` config options and use them.
|
19 |
+
#command:
|
20 |
+
# - bstart - Use if using Fastify
|
21 |
+
# - bstart:standalone - Use if using Hono
|
22 |
+
# See docs for differences
|
23 |
+
# - start:standalone - Command to use Hono over fastify
|
24 |
+
# See docs for differences between the servers
|
package.json
CHANGED
@@ -1,47 +1,11 @@
|
|
1 |
{
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
"
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
"format:check": "prettier --check .",
|
12 |
-
"lint": "eslint .",
|
13 |
-
"lint:fix": "eslint --fix ."
|
14 |
-
},
|
15 |
-
"dependencies": {
|
16 |
-
"@astrojs/node": "^9.0.0",
|
17 |
-
"@astrojs/sitemap": "^3.2.1",
|
18 |
-
"@mercuryworkshop/bare-as-module3": "^2.2.5",
|
19 |
-
"@mercuryworkshop/bare-mux": "^2.1.5",
|
20 |
-
"@mercuryworkshop/epoxy-transport": "^2.1.26",
|
21 |
-
"@mercuryworkshop/libcurl-transport": "^1.3.14",
|
22 |
-
"@mercuryworkshop/wisp-js": "^0.3.3",
|
23 |
-
"@rubynetwork/rammerhead": "^1.3.5",
|
24 |
-
"@titaniumnetwork-dev/ultraviolet": "^3.2.10",
|
25 |
-
"@tomphttp/bare-server-node": "^2.0.5",
|
26 |
-
"@types/node": "^22.10.1",
|
27 |
-
"astro": "^5.0.1",
|
28 |
-
"chalk": "^5.3.0",
|
29 |
-
"cookie-parser": "^1.4.7",
|
30 |
-
"dotenv-flow": "^4.1.0",
|
31 |
-
"express": "^4.21.1",
|
32 |
-
"notyf": "^3.10.0",
|
33 |
-
"sequelize": "^6.37.5",
|
34 |
-
"sqlite3": "^5.1.7"
|
35 |
-
},
|
36 |
-
"devDependencies": {
|
37 |
-
"@typescript-eslint/eslint-plugin": "^8.17.0",
|
38 |
-
"@typescript-eslint/parser": "^8.17.0",
|
39 |
-
"eslint": "^9.16.0",
|
40 |
-
"eslint-plugin-astro": "^1.3.1",
|
41 |
-
"prettier": "3.4.1",
|
42 |
-
"prettier-plugin-astro": "^0.14.1"
|
43 |
-
},
|
44 |
-
"optionalDependencies": {
|
45 |
-
"bufferutil": "^4.0.8"
|
46 |
-
}
|
47 |
}
|
|
|
1 |
{
|
2 |
+
"name": "incognito",
|
3 |
+
"version": "1.1.5",
|
4 |
+
"private": true,
|
5 |
+
"type": "module",
|
6 |
+
"dependencies": {
|
7 |
+
"@iconify-json/fa-solid": "^1.1.8",
|
8 |
+
"@iconify-json/fa6-solid": "^1.1.21",
|
9 |
+
"@iconify-json/mdi": "^1.2.1"
|
10 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
public/favicon.svg
DELETED
public/flash/instantiateFlash.js
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
const id = window.location.pathname.split("/").pop();
|
2 |
-
if (id && RufflePlayer) {
|
3 |
-
document.title = `Flash Game - ${id}`;
|
4 |
-
window.addEventListener("load", loadRuffle);
|
5 |
-
} else {
|
6 |
-
document.querySelector("#loader").classList.add("hidden");
|
7 |
-
document.querySelector("#error").classList.remove("hidden");
|
8 |
-
}
|
9 |
-
|
10 |
-
function loadRuffle() {
|
11 |
-
const ruffle = RufflePlayer.newest().createPlayer();
|
12 |
-
ruffle.config = {
|
13 |
-
splashScreen: false,
|
14 |
-
unmuteOverlay: "hidden",
|
15 |
-
autoplay: "on",
|
16 |
-
contextMenu: "on",
|
17 |
-
showSwfDownload: false
|
18 |
-
};
|
19 |
-
ruffle.style.width = "100%";
|
20 |
-
ruffle.style.height = "100%";
|
21 |
-
const gameContainer = document.querySelector("#gameContainer");
|
22 |
-
if (gameContainer != null) {
|
23 |
-
gameContainer.appendChild(ruffle);
|
24 |
-
}
|
25 |
-
ruffle.load(`/games/flash/${id}.swf`).then(() => {
|
26 |
-
let loader = document.querySelector("#loader");
|
27 |
-
loader.classList.remove("loading");
|
28 |
-
loader.classList.add("hidden");
|
29 |
-
document.querySelector("#gameContainer").classList.remove("hidden");
|
30 |
-
});
|
31 |
-
// Stop the event listener, saves miniscule amount of memory
|
32 |
-
window.removeEventListener("load", loadRuffle);
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/game.css
DELETED
@@ -1,73 +0,0 @@
|
|
1 |
-
.vertical {
|
2 |
-
height: 70vh !important;
|
3 |
-
width: 30% !important;
|
4 |
-
aspect-ratio: auto !important;
|
5 |
-
}
|
6 |
-
#main-content {
|
7 |
-
margin-top: 2rem;
|
8 |
-
}
|
9 |
-
.game-container {
|
10 |
-
display: flex;
|
11 |
-
align-items: center;
|
12 |
-
flex-direction: column;
|
13 |
-
overflow: hidden;
|
14 |
-
background: var(--dropdown-background-color);
|
15 |
-
width: 80%;
|
16 |
-
margin: 0 auto;
|
17 |
-
margin-bottom: 4rem;
|
18 |
-
border-radius: 15px;
|
19 |
-
}
|
20 |
-
#game-frame {
|
21 |
-
aspect-ratio: 16 / 8;
|
22 |
-
height: 80vh;
|
23 |
-
width: 1350px;
|
24 |
-
border: 0;
|
25 |
-
}
|
26 |
-
|
27 |
-
.flash-frame {
|
28 |
-
width: 1024px !important;
|
29 |
-
height: 576px !important;
|
30 |
-
}
|
31 |
-
|
32 |
-
.game-info {
|
33 |
-
display: flex;
|
34 |
-
flex-direction: column;
|
35 |
-
gap: 1rem;
|
36 |
-
background-color: var(--background-highlight);
|
37 |
-
width: 100%;
|
38 |
-
padding: 1rem;
|
39 |
-
padding-top: 0;
|
40 |
-
}
|
41 |
-
.game-info-top {
|
42 |
-
display: flex;
|
43 |
-
justify-content: space-between;
|
44 |
-
margin-top: 0.5rem;
|
45 |
-
}
|
46 |
-
.icn {
|
47 |
-
width: 32px;
|
48 |
-
height: 32px;
|
49 |
-
cursor: pointer;
|
50 |
-
}
|
51 |
-
.game-info-left {
|
52 |
-
display: flex;
|
53 |
-
gap: 10px;
|
54 |
-
justify-content: center;
|
55 |
-
align-items: center;
|
56 |
-
height: 48px;
|
57 |
-
}
|
58 |
-
.game-title {
|
59 |
-
font-weight: bold;
|
60 |
-
font-size: 20px;
|
61 |
-
}
|
62 |
-
|
63 |
-
.game-img {
|
64 |
-
width: 48px;
|
65 |
-
height: 48px;
|
66 |
-
border-radius: 50%;
|
67 |
-
border: 3px solid var(--accent-color-brighter);
|
68 |
-
box-shadow: 0px 0px 20px 5px var(--accent-color-brighter);
|
69 |
-
}
|
70 |
-
|
71 |
-
.game-desc {
|
72 |
-
margin: 0;
|
73 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/icons/canvas.png
DELETED
Binary file (25.6 kB)
|
|
public/icons/classlink.png
DELETED
Binary file (14.7 kB)
|
|
public/icons/classroom.png
DELETED
Binary file (3.65 kB)
|
|
public/icons/clever.jpg
DELETED
Binary file (2.37 kB)
|
|
public/icons/drive.png
DELETED
Binary file (1.59 kB)
|
|
public/icons/edgenuity.png
DELETED
Binary file (5.55 kB)
|
|
public/icons/google.png
DELETED
Binary file (2.22 kB)
|
|
public/icons/schoology.webp
DELETED
Binary file (4.69 kB)
|
|
public/icons/youtube.png
DELETED
Binary file (2.78 kB)
|
|
public/iframe.css
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
/* CSS for about:blank iframes */
|
2 |
-
|
3 |
-
body {
|
4 |
-
margin: 0;
|
5 |
-
}
|
6 |
-
|
7 |
-
iframe {
|
8 |
-
width: 100%;
|
9 |
-
height: 100%;
|
10 |
-
border: none;
|
11 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public/img/checkmark.svg
DELETED
public/img/games/fullscreen.svg
DELETED
public/img/games/pin-outline.svg
DELETED
public/img/games/pin.svg
DELETED
public/img/nav/backwards.svg
DELETED
public/img/nav/close.svg
DELETED
public/img/nav/forwards.svg
DELETED
public/img/nav/reload.svg
DELETED
public/img/nav/share.svg
DELETED
public/img/search.svg
DELETED
public/logo.svg
ADDED
|
public/marketplace/adblock/banner.png
DELETED
Binary file (62.8 kB)
|
|
public/marketplace/adblock/icon.png
DELETED
Binary file (72.9 kB)
|
|
public/marketplace/adblock/index.js
DELETED
The diff for this file is too large to render.
See raw diff
|
|
public/marketplace/atom-one-dark/logo.png
DELETED
Binary file (16.5 kB)
|
|