Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Release Auto-PR #327

Closed
wants to merge 808 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
808 commits
Select commit Hold shift + click to select a range
e63ab3a
fix: add permission implicator for file modes
KernelDeimos Jun 18, 2024
b126b67
fix: fix that fix
KernelDeimos Jun 18, 2024
10cbf08
fix: peers array assumption
KernelDeimos Jun 18, 2024
de58866
fix: fix permission cascade properly this time
KernelDeimos Jun 18, 2024
7eabb43
fix: i forgot to test reloading
KernelDeimos Jun 18, 2024
85c6798
fix: Make polyfilled import.meta.filename getter a valid function
AtkinsSJ Jun 18, 2024
d96f924
fix: type error in puter-site
KernelDeimos Jun 18, 2024
5dc640b
Add a list of sharing users in the sidebar of Explore
jelveh Jun 19, 2024
1904b92
Update jquery.menu-aim.js
jelveh Jun 19, 2024
1d083ef
We officially have one of the best web-based Context Menus
jelveh Jun 19, 2024
cd65217
fix: switch share notif username to sender
KernelDeimos Jun 19, 2024
174e2b7
Take user to shared directory when clicked on share notif
jelveh Jun 19, 2024
3e98f1a
tweak: acl update
KernelDeimos Jun 19, 2024
360ad2e
refactor: move FilesystemService to BaseService
KernelDeimos Jun 19, 2024
56e527d
db: add protected flag to app and subdomain
KernelDeimos Jun 19, 2024
616f28d
tweak: change default static hosting domain
KernelDeimos Jun 19, 2024
e7c0b83
feat: add querystring-informed errors
KernelDeimos Jun 19, 2024
86fca17
feat: add protected subdomains
KernelDeimos Jun 19, 2024
a813fbb
feat: add cookie for site token
KernelDeimos Jun 19, 2024
c1647a5
wip: bad commit message, I know.
jelveh Jun 19, 2024
581964b
Make GUI open the relavant directory when URL is provided
jelveh Jun 19, 2024
fb1e2f2
feat: start directory index frame
KernelDeimos Jun 19, 2024
5cda51e
tweak: add missing file for previous commit
KernelDeimos Jun 19, 2024
4bd62c0
close #309
jelveh Jun 19, 2024
8927507
Merge branch 'main' of https://github.com/HeyPuter/puter into main
jelveh Jun 19, 2024
41e307b
cast `selectable_body` and `multiselectable` to Boolean
jelveh Jun 19, 2024
c67674c
Add license headers
jelveh Jun 19, 2024
bd958b3
show the share dialog when items are dropped on a username in the sid…
jelveh Jun 19, 2024
bfd8960
Update UIWindow.js
jelveh Jun 19, 2024
eb17d61
security: address 7018641
KernelDeimos Jun 19, 2024
d14a30e
devex: add command to start/stop recording logs to a file
KernelDeimos Jun 19, 2024
ad079cd
Use razzle dazzle to display icons of items being shared
jelveh Jun 19, 2024
44d340d
Update UIWindowShare.js
jelveh Jun 19, 2024
2008db0
fix: validate size metadata
KernelDeimos Jun 19, 2024
ceba309
fix: add stream limit
KernelDeimos Jun 19, 2024
7f5f6f8
doc: add this doc/planning folder so it stops being in my index
KernelDeimos Jun 19, 2024
55c609b
fix: update test kernel
KernelDeimos Jun 19, 2024
0726a11
refactor `get_html_element_from_options`
jelveh Jun 20, 2024
219cb63
refactor `open_item`
jelveh Jun 20, 2024
7006dcc
refactor `item_icon`
jelveh Jun 20, 2024
f2f3d6f
feat: add protected apps
KernelDeimos Jun 20, 2024
3b9a74c
doc: meta documentation and common pattern tracking
KernelDeimos Jun 20, 2024
3ae0081
tweak: update this too to avoid confusion
KernelDeimos Jun 20, 2024
feabbaf
close #430
jelveh Jun 20, 2024
f6a4413
Merge branch 'main' of https://github.com/HeyPuter/puter into main
jelveh Jun 20, 2024
16c4907
feat: add permission rewriter for app by name
KernelDeimos Jun 20, 2024
82f86ee
doc(backend): protected apps; function and permissions
KernelDeimos Jun 20, 2024
1500f84
close #483
jelveh Jun 20, 2024
2355a43
tweak: Re-add mime.js import
AtkinsSJ Jun 20, 2024
5f4b922
doc: document future share endpoint
KernelDeimos Jun 20, 2024
18f9959
doc: type-tagged objects, update share doc
KernelDeimos Jun 20, 2024
dd5fde5
feat: update share endpoint to support more things
KernelDeimos Jun 20, 2024
c0fb470
tweak: update gui
KernelDeimos Jun 20, 2024
a834fbc
remove scroll bar from
jelveh Jun 20, 2024
6f0706f
rename `show_or_hide_empty_folder_message` to `toggle_empty_folder_me…
jelveh Jun 20, 2024
1c2ba76
If items are dropped on the home directory of another user, try to sh…
jelveh Jun 20, 2024
bf63144
fix: null email in request to /share
KernelDeimos Jun 20, 2024
fc4ae19
chore: cleanup share.js
KernelDeimos Jun 20, 2024
db5990a
feat: add share service and share-by-email to /share
KernelDeimos Jun 20, 2024
301ffaf
feat: add endpoints for share tokens
KernelDeimos Jun 21, 2024
5a49074
doc: sharelink endpoints
KernelDeimos Jun 21, 2024
5cb5a75
Verify `share_token` when launched
jelveh Jun 21, 2024
2d4f577
Update initgui.js
jelveh Jun 21, 2024
88ce871
Update initgui.js
jelveh Jun 21, 2024
27ec2d7
Update initgui.js
jelveh Jun 21, 2024
265f4d9
doc: document testing Puter with email
KernelDeimos Jun 21, 2024
61961b5
Update initgui.js
jelveh Jun 21, 2024
d0e3da9
Merge branch 'main' of https://github.com/HeyPuter/puter into main
jelveh Jun 21, 2024
e31625d
Update IPC.js
jelveh Jun 21, 2024
704a4ea
Show register form when user receiving a file is not the correctone
jelveh Jun 21, 2024
a72ec97
fix: readdir on file
KernelDeimos Jun 22, 2024
0bd0eaf
add the ability to pick between desktop and winow menubars
jelveh Jun 23, 2024
a58aa3f
Close #480
jelveh Jun 23, 2024
a521ff3
Merge pull request #490 from HeyPuter/customizable-menubar
jelveh Jun 23, 2024
a094ae5
Update en.js
jelveh Jun 23, 2024
16b1649
feat: add debug mod
KernelDeimos Jun 23, 2024
b0e067e
doc: misc doc additions
KernelDeimos Jun 23, 2024
742f625
feat: add /sharelink/request endpoint
KernelDeimos Jun 24, 2024
2839e74
doc: /sharelink/request
KernelDeimos Jun 24, 2024
266e41f
Remove extra height for iframe when menu bar is in `desktop` mode
jelveh Jun 24, 2024
c79f500
tweak: improve dev console
KernelDeimos Jun 24, 2024
15465bf
fix: improve console experience on mac
KernelDeimos Jun 24, 2024
a136ee5
fix: oops
KernelDeimos Jun 24, 2024
46eb4ed
fix: Throw an error when readdir is called on a non-directory
AtkinsSJ Jun 24, 2024
0cf90ee
fix: fix issues with apps in /share endpoint
KernelDeimos Jun 24, 2024
13e2f72
feat: add subdomain permission (if applicable) on app share
KernelDeimos Jun 24, 2024
9751fd9
feat: add appdata permission (if applicable) on app share
KernelDeimos Jun 24, 2024
9033f6f
fix: update email share object
KernelDeimos Jun 24, 2024
00765d0
chore: Add `mods/` directory to eslint
AtkinsSJ Jun 24, 2024
d81f6e5
chore: Mark globals as being part of the window object
AtkinsSJ Jun 24, 2024
5551326
doc: add documentation for app shares
KernelDeimos Jun 25, 2024
b78c83a
refactor: share endpoint
KernelDeimos Jun 25, 2024
8a763ea
fix multiple issues with ctx menu event delegation and keyboard navig…
jelveh Jun 26, 2024
fbc02a5
Fix the issue with re-opening submenus using keyboard
jelveh Jun 26, 2024
e132a20
refactor: move check-user-permission to Sequence
KernelDeimos Jun 25, 2024
0ddb13e
sql: group table
KernelDeimos Jun 25, 2024
b817a78
sql: group permissions table
KernelDeimos Jun 25, 2024
0014940
feat: add user-group permission check
KernelDeimos Jun 25, 2024
4216346
feat: add group management endpoints
KernelDeimos Jun 26, 2024
c374b0c
feat: add group permission endpoints
KernelDeimos Jun 27, 2024
e9ee319
doc: document group endpoints
KernelDeimos Jun 27, 2024
2faaeae
chore: add write request to kdmod
KernelDeimos Jun 27, 2024
ecb9978
fix: bug introduced when refactoring /share to Sequence
KernelDeimos Jun 27, 2024
e1e76c6
feat(backend): Add tab-completion to server console command names
AtkinsSJ Jun 28, 2024
fa81dca
feat(backend): Add tab completion to server console command arguments
AtkinsSJ Jun 28, 2024
95c8235
feat(git): Implement `git clone`
AtkinsSJ May 31, 2024
43ce0d5
feat(git): Implement `git remote`
AtkinsSJ May 31, 2024
ad4f132
feat(git): Implement `git branch`
AtkinsSJ Jun 3, 2024
c86e4df
Remove unused imports from git subcommands
AtkinsSJ Jun 3, 2024
98a4b9e
feat(git): Implement `git fetch`
AtkinsSJ Jun 4, 2024
35e4453
feat(git): Implement `git checkout`
AtkinsSJ Jun 4, 2024
1822ace
refactor(git): Use dir/gitdir variable names like isogit does
AtkinsSJ Jun 5, 2024
eb2b6a0
feat(git): Implement `git pull`
AtkinsSJ Jun 5, 2024
49c2f16
feat(git): Add start-revision and file arguments to `git log`
AtkinsSJ Jun 7, 2024
622b6a9
feat(git): Implement `git diff`
AtkinsSJ Jun 7, 2024
c0562d7
docs(git): Document git client
AtkinsSJ Jun 11, 2024
a681940
tweak(git): Check for 'ENOENT' instead of ErrorCodes.ENOENT
AtkinsSJ Jun 11, 2024
c436460
tweak(git): Move proxy url definition into config files
AtkinsSJ Jun 11, 2024
3cad1ec
feat(git): Add diff display to `show` and `log` subcommands
AtkinsSJ Jun 11, 2024
8c70229
feat(git): Implement `git push`
AtkinsSJ Jun 18, 2024
364d580
feat(git): Add authentication to clone, fetch, and pull.
AtkinsSJ Jun 20, 2024
d6dd1a5
feat(git): Add --color and --no-color options
AtkinsSJ Jun 20, 2024
2c9b1a3
feat(git): Handle detached HEAD in `git status` and `git branch --list`
AtkinsSJ Jun 20, 2024
057b3ac
feat(git): Allow checking out a commit instead of a branch
AtkinsSJ Jun 20, 2024
9551544
feat(git): Make `git add` work for deleted files
AtkinsSJ Jun 20, 2024
60976b1
feat(git): Format output closer to canonical git
AtkinsSJ Jun 24, 2024
b6906bb
feat(git): Resolve more forms of commit reference
AtkinsSJ Jun 21, 2024
a680371
feat(git): Display file contents as a string for `git show FILE_OID`
AtkinsSJ Jun 24, 2024
4ba8a32
feat(git): Implement `git restore`
AtkinsSJ Jun 20, 2024
bab5204
feat(git): Color output for `git status` files
AtkinsSJ Jun 24, 2024
2e4259d
feat(git): Implement `git cherry-pick`
AtkinsSJ Jun 26, 2024
fa3df72
feat(git): Add a --debug option, which sets the DEBUG global
AtkinsSJ Jun 26, 2024
dd10a37
feat(git): Make shorten_hash() guaranteed to produce a unique hash
AtkinsSJ Jun 26, 2024
73d0f5a
fix(git): Make git commit display detached HEAD correctly
AtkinsSJ Jun 26, 2024
351d3f5
tweak(git): List git subcommands in `git help` with no arguments
AtkinsSJ Jun 26, 2024
45cdfcb
feat(git): Display ref names in `git log` and `git show`
AtkinsSJ Jun 26, 2024
adcd3db
refactor: Move parsely into top-level packages directory
AtkinsSJ Jun 27, 2024
711dbc0
feat(git): Understand references like `HEAD^` and `main~3`
AtkinsSJ Jun 27, 2024
d077504
doc(git): Expand documentation and add FIXMEs
AtkinsSJ Jun 28, 2024
95e1268
Make contextmenu smooth as butter
jelveh Jun 28, 2024
332371f
feat: add service to test file share logic
KernelDeimos Jun 27, 2024
9ad04cd
prereq: make it possible to access storage without context init
KernelDeimos Jun 28, 2024
88d6bee
feat: get first test working on share-test service
KernelDeimos Jun 28, 2024
b10302a
fix: add missing columns for public directory update
KernelDeimos Jun 29, 2024
1429d6f
fix: column nullability blunder
KernelDeimos Jun 30, 2024
a0f4292
test: add more test scenarios for sharing
KernelDeimos Jun 30, 2024
2f16322
fix: update PD alert custom details
KernelDeimos Jun 30, 2024
2f5b9cc
chore: add temp user-app permission
KernelDeimos Jun 30, 2024
91e9fa7
improve the ux of "Show Desktop" toolbar button
jelveh Jul 1, 2024
b713376
tweak: Ensure `puter.domain` is always set for launched apps
AtkinsSJ Jun 28, 2024
e2ea57f
tweak(phoenix): Only take auth params from config message
AtkinsSJ Jun 28, 2024
4539408
feat(phoenix): Show actual host name in prompt and neofetch
AtkinsSJ Jun 28, 2024
d76e713
fix(phoenix): Gracefully handle completing a non-existent path
AtkinsSJ Jun 28, 2024
75a989a
feat(phoenix): Make `clear` clear scrollback unless `-x` is given
AtkinsSJ Jun 26, 2024
d9c4fbb
fix: ui color input attributes
KernelDeimos Jul 1, 2024
80ea655
close #512
jelveh Jul 1, 2024
c0063a8
fix: handling of batch requests with zero files
KernelDeimos Jul 2, 2024
77211c4
feature: add (pt-br) translation for system settings.
guilherme-codes Jul 2, 2024
3633349
Merge pull request #516 from guicazaroto/feature/translate-br.js
jelveh Jul 2, 2024
d55f38c
feat: add /group/list endpoint
KernelDeimos Jul 3, 2024
de7e2ad
doc: document /group/list
KernelDeimos Jul 3, 2024
dcbca2f
Add `i18n` keys for multiple terms
jelveh Jul 3, 2024
0855f2b
fix: property validation on some permission endpoints
KernelDeimos Jul 4, 2024
4af279a
feat: rate-limit for excessive groups
KernelDeimos Jul 4, 2024
7d2f6d2
fix: group permission audit table
KernelDeimos Jul 4, 2024
a9c33da
Updated Urdu translations, added missing entries, and corrected inacc…
Zuhaib-Asif Jul 5, 2024
c9e2427
Merge pull request #521 from Zuhaib-Asif/update-urdu-translations
jelveh Jul 5, 2024
d075863
Add more English translation keys
jelveh Jul 5, 2024
5e78690
Add Thai translation.
owatapx Jul 6, 2024
31bf69f
add the two missing keys
jelveh Jul 6, 2024
bf27811
Merge pull request #523 from sysnajar/th
jelveh Jul 6, 2024
28a9469
Update locale
brodbar Jul 6, 2024
ac7fe1e
Merge pull request #526 from brodbar/main
jelveh Jul 6, 2024
d0cb0a9
Add `english_name` attribute for the Polish `i18n` file
jelveh Jul 6, 2024
c8abe23
dev: small changes
KernelDeimos Jul 6, 2024
ef298ce
feat: Display app icon and description in embeds
AtkinsSJ May 23, 2024
812480b
updated French translation based on English file per issue #513
etnms Jul 7, 2024
37dca86
Updated german translation file
mklr19 Jul 7, 2024
69332e1
Merge pull request #555 from etnms/#537-french-translation
jelveh Jul 7, 2024
ce2b38c
Merge pull request #556 from mklr19/translate-german
jelveh Jul 7, 2024
cb5184f
Confirming to delete accoutn works with both English and the chosen l…
jelveh Jul 7, 2024
ce50718
Issue no-551 hindi translation
ramanfloyeedee Jul 7, 2024
4c26ebe
Fix key references for the Hindi language
jelveh Jul 7, 2024
016633c
Merge pull request #557 from Ramanmishra09/main
jelveh Jul 7, 2024
7811294
Add `puter` to `reserved_words.js`
jelveh Jul 7, 2024
d6dd04f
Merge pull request #476 from HeyPuter/eric/more-reserved-words
jelveh Jul 7, 2024
c23e893
Merge pull request #218 from lsileoni/main
jelveh Jul 7, 2024
a43cab0
refactor: move puter gui to workspace
KernelDeimos Jul 7, 2024
7c227ad
chore: update eslint config
KernelDeimos Jul 7, 2024
d3f3e08
sync: update check-translations.js
KernelDeimos Jul 7, 2024
edc5743
chore: add incubator/ to eslint ignores
KernelDeimos Jul 7, 2024
2a91edb
chore: add Buffer to eslint
KernelDeimos Jul 7, 2024
4584006
Update readme and put self-hosting instructions in a separate document
jelveh Jul 7, 2024
70b9b6f
Update README.md
jelveh Jul 7, 2024
841c8bf
Update README.md to add emojis to heading for easier reading
jelveh Jul 7, 2024
c5f4ff5
Update README.md
jelveh Jul 7, 2024
2fbe6a6
Update README.md
jelveh Jul 7, 2024
5e5a185
Update README.md
jelveh Jul 7, 2024
e6cdca0
Remove the FAQ section from README.md
jelveh Jul 7, 2024
c47556d
Update README.md
jelveh Jul 7, 2024
c88ce8e
Delete test.txt
jelveh Jul 7, 2024
11cfa83
Update README.md
jelveh Jul 7, 2024
fdea790
Update screenshot in README.md
jelveh Jul 7, 2024
fd41ae2
feat: support canonical puter.js url in dev
KernelDeimos Jul 8, 2024
af083b0
cleanup: feat: support canonical puter.js url in dev
KernelDeimos Jul 8, 2024
f2b551d
Initial commit for Dev Center
jelveh Jul 8, 2024
e73d55b
Perform `getDeveloperProfile` only when on puter.com
jelveh Jul 8, 2024
10f4d7d
feat: register dev center to apps
KernelDeimos Jul 8, 2024
a847405
improve Chinese translation fix issue 549
TianLangStudio Jul 8, 2024
283f409
fix: fix owner ids for default apps
KernelDeimos Jul 8, 2024
fd39f92
get username and appID from puter.js rather than iframe URL in Dev Ce…
jelveh Jul 8, 2024
ad56091
Merge pull request #559 from TianLangStudio/translation_zh
jelveh Jul 8, 2024
4078a63
tweak: maximize dev center on start
KernelDeimos Jul 8, 2024
5944244
make Dev Center aware of the origin of the host environment
jelveh Jul 8, 2024
30f9f29
Merge branch 'main' of https://github.com/HeyPuter/puter into main
jelveh Jul 8, 2024
6603c45
sync: update gui paths in Dockerfile
KernelDeimos Jul 8, 2024
94c0449
fix: docker runtime fail because stdout columns
KernelDeimos Jul 8, 2024
1f8cd7f
Create .eslintignore
jelveh Jul 8, 2024
58ff7c2
Update .eslintignore
jelveh Jul 8, 2024
cb8f0aa
wtf is wrong with eslint?!
jelveh Jul 8, 2024
1f3eb08
chore: remove eslint
KernelDeimos Jul 8, 2024
86fd2f4
Delete src/dev-center/.eslintignore
jelveh Jul 8, 2024
c84e15b
chore(main): release 1.0.0
github-actions[bot] Jul 8, 2024
1f659f7
chore: fix release-please version
KernelDeimos Jul 8, 2024
8836011
Russian translation fixed
Jul 8, 2024
17145d0
Update ru.js issue #547
julijatol Jul 8, 2024
3ed7916
feat: JSON support for kv driver
KernelDeimos Jul 8, 2024
a1dd354
Merge pull request #561 from julijatol/main
jelveh Jul 8, 2024
e61039f
Ukrainian updated
Jul 8, 2024
d2c6830
Merge branch 'main' into translations_russian_and_ukrainian
jelveh Jul 8, 2024
e061b1f
Merge pull request #560 from Speedyjet/translations_russian_and_ukrai…
jelveh Jul 8, 2024
26e9b0b
Merge pull request #564 from Speedyjet/Russian_and_Ukrainian
jelveh Jul 8, 2024
bffa192
Update Arabic translations in src/gui/src/i18n/translations/ar.js to …
medelm1 Jul 8, 2024
48f99fb
dev: add script to replace release-please
KernelDeimos Jul 8, 2024
42496f9
Add missing commas
jelveh Jul 8, 2024
fe5be7f
Update Arabic translations in src/gui/src/i18n/translations/ar.js to …
medelm1 Jul 8, 2024
8bdd489
Add missing commas
jelveh Jul 8, 2024
7844965
Merge branch 'update-arabic-translations' of https://github.com/medel…
jelveh Jul 8, 2024
7d92304
Update ar.js
jelveh Jul 8, 2024
8b9d57d
Merge pull request #565 from medelm1/update-arabic-translations
jelveh Jul 8, 2024
a9338b4
chore: update package.json
KernelDeimos Jul 8, 2024
42a6b39
feat: update BR translation
matheussss1 Jul 8, 2024
073b501
Merge pull request #566 from matheussss1/update-br-translation
jelveh Jul 8, 2024
535475b
Improve `getMimeType` to remove trailing dot in the extension if preset
jelveh Jul 9, 2024
3380044
Add jsdoc-style comments for a number of functions
jelveh Jul 9, 2024
d3a9ba8
Move icon credits to the GUI project directory
jelveh Jul 9, 2024
47f76cc
dev: add file walker
KernelDeimos Jul 9, 2024
0b39c76
move: incubator to experiments
KernelDeimos Jul 9, 2024
50036e9
dev: add js-parse-and-output experiment
KernelDeimos Jul 9, 2024
a1ff375
doc: update comment_prefixes.md
KernelDeimos Jul 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# === FOR EMPTY COMMITS ===
# Select reason for empty commit:
- [ ] Add conventional commit message for changelog
- [x] Forgot to use conventional commit style
# Increment this value if nothing above was changed
0
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1 +1 @@
PORT=4000
PORT=4000
2 changes: 1 addition & 1 deletion .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:

strategy:
matrix:
node-version: [16.x, 18.x, 20.x, 21.x]
node-version: [20.x, 21.x, 22.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
Expand Down
28 changes: 0 additions & 28 deletions .github/workflows/check-translations.yml

This file was deleted.

26 changes: 12 additions & 14 deletions .github/workflows/docker-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ name: Docker Image CI
# branch called `main`.
on:
push:
branches: ['release']

tags:
- '*.*.*'
branches:
- 'main'

# Defines two custom environment variables for the workflow. These are used
# for the Container registry domain, and a name for the Docker image that
Expand Down Expand Up @@ -40,12 +42,12 @@ jobs:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3

# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about)
# to extract tags and labels that will be applied to the specified image.
Expand All @@ -56,16 +58,10 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}"
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}
type=sha
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }}
type=ref,event=branch

# This step uses the `docker/build-push-action` action to build the
# image, based on your repository's `Dockerfile`. If the build succeeds,
Expand All @@ -81,6 +77,8 @@ jobs:
with:
platforms: linux/amd64,linux/arm64
context: .
push: true
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,28 @@
# Misc
.DS_Store

# Dependencies
node_modules/

*.zip
*.tgz
license.config.json
license-header.txt

# Build Outputs
dist/
.vscode/

# VS Code IDE
.vscode/**/*
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/settings.json
!.vscode/tasks.json

# Local env files
.env
!.env.example

# this is for jetbrain IDEs
.idea/
/puter
7 changes: 7 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"cSpell.words": [
"dnsmasq",
"heyputer",
"Puter"
]
}
204 changes: 204 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ RUN npm cache clean --force \
&& npm ci

# Run the build command if necessary
RUN npm run build
RUN cd src/gui && npm run build && cd -

# Production stage
FROM node:21-alpine
Expand All @@ -46,7 +46,7 @@ RUN mkdir -p /opt/puter/app
WORKDIR /opt/puter/app

# Copy built artifacts and necessary files from the build stage
COPY --from=build /app/dist ./dist
COPY --from=build /app/src/gui/dist ./dist
COPY --from=build /app/node_modules ./node_modules
COPY . .

Expand Down
114 changes: 17 additions & 97 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,31 @@
<a href="https://hackerone.com/puter_h1b">Bug Bounty</a>
</p>

<h3 align="center"><img width="700" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-2.webp"></h3>
<h3 align="center"><img width="700" style="border-radius:5px;" alt="screenshot" src="https://assets.puter.site/puter.com-screenshot-3.webp"></h3>

<br/>

## Puter

Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. It can be used to build remote desktop environments or serve as an interface for cloud storage services, remote servers, web hosting platforms, and more.
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. Puter can be used as:

- A privacy-first personal cloud to keep all your files, apps, and games in one secure place, accessible from anywhere at any time.
- A platform for building and publishing websites, web apps, and games.
- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- A remote desktop environment for servers and workstations.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!

<br/>

## Getting Started

After reading this section, please proceed to **Self-Hosting** and **Configuration** below.
Read these instructions carefully or you may see errors due to
an invalid setup.

### Local Development
### 💻 Local Development

```bash
git clone https://github.com/HeyPuter/puter
cd puter
cp .env.example .env
npm install
npm start
```
Expand All @@ -48,109 +52,41 @@ This will launch Puter at http://localhost:4000 (or the next available port).

<br/>

### Using Docker
### 🐳 Docker

**note:** it is **not** necessary to run this within a clone of this repository. For contributors, it is recommended to use the [Local Development](#local-development) instructions.

```bash
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
```

### Using Docker Compose
<br/>


### 🐙 Docker Compose

**note:** it is **not** necessary to run this within a clone of this repository. For contributors, it is recommended to use the [Local Development](#local-development) instructions.

```bash
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
```

<br/>

See [Configuration](#configuration) for next steps.

<br/>
### ☁️ Puter.com

## ⚠️ Self-Hosting ⚠️
The self-hosted version of Puter is currently in alpha stage and should not be used in production yet. It is under active development and may contain bugs, other issues. Please exercise caution and use it for testing and evaluation purposes only.
Puter is available as a hosted service at [**puter.com**](https://puter.com).

<br/>

## Configuration

Running the server will generate a configuration file in one of these locations:
- `config/config.json` when [Using Docker](#using-docker)
- `volatile/config/config.json` in [Local Development](#local-development)
- `/etc/puter/config.json` on a server (or within a Docker container)

### Domain Name

To access Puter on your device, you can simply go to the address printed in
the server console (usually `puter.localhost:4100`).

To access Puter from another device, a domain name must be configured, as well as
an `api` subdomain. For example, `example.local` might be the domain name pointing
to the IP address of the server running puter, and `api.example.com` must point to
this address as well. This domain must be specified in the configuration file
(usually `volatile/config/config.json`) as well.

See [domain configuration](./doc/self-hosters/domains.md) for more information.

### Configure the Port

- You can specify a custom port by setting `http_port` to a desired value
- If you're using a reverse-proxy such as nginx or cloudflare, you should
also set `pub_port` to the public (external) port (usually `443`)
- If you have HTTPS enabled on your reverse-proxy, ensure that
`protocol` in config.json is set accordingly

### Default User

By default, Puter will create a user called `default_user`.
This user will have a randomly generated password, which will be printed
in the development console.
A warning will persist in the dev console until this user's
password is changed. Please login to this user and change the password as
your first step.

<br/>

## License

This repository is licensed under AGPL-3.0; However, our SDK (puter.js) is also available under Apache 2.0, as indicated by the license file in that section (packages/puter-js) of this repository.

<br/>

## FAQ

### ❓ What's the use case for Puter?

Puter can be used as:

- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- Remote desktop environment for servers and workstations.
- A platform for building and hosting websites, web apps, and games.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!

<br/>


### ❓ Why isn't Puter built with React, Angular, Vue, etc.?

For performance reasons, Puter is built with vanilla JavaScript and jQuery. Additionally, we'd like to avoid complex abstractions and to remain in control of the entire stack, as much as possible.

Also partly inspired by some of our favorite projects that are not built with frameworks: [VSCode](https://github.com/microsoft/vscode), [Photopea](https://www.photopea.com/), and [OnlyOffice](https://www.onlyoffice.com/).

<br/>

### ❓ Why jQuery?

Puter interacts directly with the DOM and jQuery provides an elegant yet powerful API to manipulate the DOM, handle events, and much more. It's also fast, mature, and battle-tested.

<br/>

## #DoesItRunPuter

- [Minecraft](https://twitter.com/HeyPuter/status/1771957571496092036) | [video](https://www.youtube.com/watch?v=GIowZUXkg5g)
Expand All @@ -164,19 +100,3 @@ Puter interacts directly with the DOM and jQuery provides an elegant yet powerfu
- [Tesla Model Y](https://twitter.com/HeyPuter/status/1772858333751636310)
- [Nintendo Switch](https://twitter.com/HeyPuter/status/1780645795240538518)
- [Steam Deck](https://twitter.com/everythingSung/status/1782162352403828793)

<br/>

## Credits

The default wallpaper is created by [Milad Fakurian](https://unsplash.com/photos/blue-orange-and-yellow-wallpaper-E8Ufcyxz514) and published on [Unsplash](https://unsplash.com/).

Icons by [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) under GPL-3.0 license.

Icons by [Iconoir](https://iconoir.com/) under MIT license.

Icons by [Elementary Icons](https://github.com/elementary/icons) under GPL-3.0 license.

Icons by [Tabler Icons](https://tabler.io/) under MIT license.

Icons by [bootstrap-icons](https://icons.getbootstrap.com/) under MIT license.
5 changes: 5 additions & 0 deletions doc/api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# API Documentation

Note that this documentation is different from the [puter.js docs](https://docs.puter.com).
The scope of the documentation in this directory includes both stable API endpoints that
are used by **puter.js**, as well as API endpoints that may be subject to future changes.
9 changes: 9 additions & 0 deletions doc/api/concepts/share-link.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Share Links

A **share link** is a link to Puter's origin which contains a token
in the query string (the key is `share_token`; ex:
`http://puter.localhost:4100?share_token=...`).

This token can be used to apply permissions to the user of the
current session **if and only if** this user's email is confirmed
and matches the share link's associated email.
Loading
Loading