Skip to content

Commit ea2677c

Browse files
authored
Merge pull request #62 from try-supernova/develop
2 parents 81209b8 + 0fac4d0 commit ea2677c

File tree

408 files changed

+13235
-3506
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

408 files changed

+13235
-3506
lines changed

.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
NODE_ENV=development
2+
GLOBAL_ROOT=pluto-40t.pages.dev
3+
DEV_SERVER_PORT=3000
4+
PACKAGE_MANAGER=yarn # npm is not supported
5+
DEV_INSTALLER_PERSISTENT=false

.github/workflows/tauri.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: 'publish'
2+
on:
3+
push:
4+
branches:
5+
- RELEASE
6+
- staging
7+
8+
jobs:
9+
publish-tauri:
10+
permissions:
11+
contents: write
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
platform: [macos-latest, ubuntu-20.04, windows-latest]
16+
17+
runs-on: ${{ matrix.platform }}
18+
steps:
19+
- uses: actions/checkout@v3
20+
- name: setup node
21+
uses: actions/setup-node@v3
22+
with:
23+
node-version: 16
24+
- name: install Rust stable
25+
uses: dtolnay/rust-toolchain@stable
26+
- name: install dependencies (ubuntu only)
27+
if: matrix.platform == 'ubuntu-20.04'
28+
run: |
29+
sudo apt-get update
30+
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
31+
- name: install frontend dependencies
32+
run: yarn install # change this to npm or pnpm depending on which one you use
33+
- uses: tauri-apps/tauri-action@v0
34+
env:
35+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
36+
PRERELEASE: ${{ startsWith(github.ref, 'refs/heads/staging') }}
37+
with:
38+
tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version
39+
releaseName: 'Pluto Desktop v__VERSION__'
40+
releaseBody: 'See the assets to download this version and install.'
41+
releaseDraft: true
42+
prerelease: ${{ env.PRERELEASE }}

.gitignore

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
1-
# temporary folders that get zipped... @TODO remove these folders after they get zipped
1+
# temporary folders that get deleted after build but if build fails they are still there
22
target_fs_BUILD/
33
installer_fs_BUILD/
44

5+
target_fs/Pluto/System41/**/dist/*
6+
installer_fs/Pluto/System41/**/dist/*
7+
.turbo
8+
59
.vscode
610
out
711
.idea
12+
dist
13+
temp/
14+
tmp/
815

916
# Logs
1017
logs
@@ -88,7 +95,6 @@ typings/
8895

8996
# Nuxt.js build / generate output
9097
.nuxt
91-
dist
9298

9399
# Gatsby files
94100
.cache/

.husky/commit-msg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/usr/bin/env sh
22
. "$(dirname -- "$0")/_/husky.sh"
33

4-
npx --no -- commitlint --edit ${1}
4+
npx --no -- commitlint --edit "${1}"

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodejs 18.20.8

CODE_OF_CONDUCT.md

Lines changed: 0 additions & 128 deletions
This file was deleted.

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
(c) Copyright 2023 stretch07, All rights reserved.
1+
(c) Copyright 2025 Pablo Gracia, All rights reserved.

README.md

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,43 @@
1-
# 🌌 pluto
1+
# 🌌 supernova
22
a complete web OS
3+
> **Note:** Along with all the source code, this document is closed-source and private. If you find this document floating around the internet or if someone sends it to you, [contact me](https://pablogracia.net/contact).
34
## About
4-
Pluto is a close-sourced Web OS, similar to Windows93 or Windows96. It intends to be the most sophisticated, complete, and developer-friendly web OS.
5-
Applications in open99 run under the 41worker environment, which is comparable to WRT for Windows 96. 41worker applications run in workers to improve speed, security, and convenience. To learn more, visit [the docs page](https://developers.pluto.stretch.wtf/learn/api/41worker).
5+
Supernova is an offline, close-sourced Web OS, similar to Windows93 or Windows96. It intends to be the most sophisticated, complete, and developer-friendly web OS.
6+
Supernova programs run under the program runtime (codename 41worker), which is comparable to WRT for Windows 96. These applications run in workers to improve speed, security, and convenience. To learn more, visit [the docs page](https://learn.d.pluto.pablogracia.net/api/41worker).
7+
## Installation
8+
> Make sure you have yarn installed. Supernova does not support npm/pnpm.
9+
1. Clone the repository locally.
10+
2. Copy the environment variables by running `cp .env.example .env`.
11+
3. Install the dependencies by running `yarn`.
12+
### Tauri Installation
13+
Supernova uses the Tauri framework to build the desktop application.
14+
This is not required for the web version.
15+
> Follow the instructions [here](https://tauri.app/v1/guides/getting-started/prerequisites) to install the required tools for building for desktop.
616
## Usage
7-
You can build pluto by running `npm run build`. This will build the OS and put it in the `/dist` folder.
17+
You can build Supernova by running `yarn build`.
18+
This will build the OS into the `/dist` folder.
19+
Because Supernova is a static application, it does not require any server-side shenanigans.
20+
Additionally, you may use `yarn start` to build and serve Supernova locally on port 8000.
21+
This enables the watch mode, meaning every time you save a file, the application will rebuild.
22+
23+
To build Supernova on the global network, Cloudflare Pages, you must push to the RELEASE branch.
24+
25+
### Build Mode
26+
Supernova requires for a build mode environment variable to be set. Currently, this can either be in `development` or `production` modes.
27+
This is declared using the NODE_ENV environment variable (yes, capitalized).
28+
29+
Certain parts of the Supernova kernel rely on NODE_ENV (for example, anti-piracy, devtools detector, obfuscation, etc.).
30+
Code that references `process.env.NODE_ENV` is simplified at build, for both development and production modes.
31+
832
## Structure
9-
`/installer_fs` gets built into `/public/assets/installer.zip` as a zip file.
10-
`/target_fs` gets built into `/public/assets/rootfs.zip` as a zip file.
11-
`/build` is the build scripts.
12-
`/public` is static files. This includes CSS as well as images.
13-
`/src` is the OS kernel and gets built to `/dist/index.js`.
14-
`/dist` is your ready-to-run build of Pluto.
33+
### Directories
34+
* `/executables/installer/` gets built into `/dist/assets/installer.zip` as a zip file.
35+
* `/executables/root/` gets built into `/dist/assets/rootfs.zip` as a zip file.
36+
* `/scripts/` is the build scripts.
37+
* `/public/` is static files. This includes CSS as well as images.
38+
* `/src/` is the OS kernel and gets built to `/dist/index.js`.
39+
* `/src-tauri/` is the Tauri application code (contains rust and tauri config, mainly)
40+
* `/dist/` is your ready-to-run build of Supernova.
41+
42+
## CLOC
43+
You may accurately count lines of code by running `cloc --exclude-dir="node_modules,src-tauri,dist,package-lock.json" --quiet .` in the root directory.

SOURCES.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

build/index.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)