{"id":13678897,"url":"https://github.com/reorx/sui2","last_synced_at":"2025-04-04T22:09:11.782Z","repository":{"id":60631722,"uuid":"543596526","full_name":"reorx/sui2","owner":"reorx","description":"a startpage for your server and / or new tab page","archived":false,"fork":false,"pushed_at":"2024-08-08T03:15:19.000Z","size":893,"stargazers_count":392,"open_issues_count":11,"forks_count":44,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T21:08:13.021Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://reorx.github.io/sui2/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jeroenpardon/sui","license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reorx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["reorx"],"patreon":null,"open_collective":null,"ko_fi":"reorx","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-09-30T12:45:35.000Z","updated_at":"2025-03-05T05:18:31.000Z","dependencies_parsed_at":"2024-01-14T15:21:40.038Z","dependency_job_id":"ff0b3d69-2e1f-4af7-9e0d-1a1a7ea01fe7","html_url":"https://github.com/reorx/sui2","commit_stats":{"total_commits":103,"total_committers":18,"mean_commits":5.722222222222222,"dds":0.3203883495145631,"last_synced_commit":"a1631c4f46e28352f13727601f9fe22f94f63fcf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reorx%2Fsui2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reorx%2Fsui2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reorx%2Fsui2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reorx%2Fsui2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reorx","download_url":"https://codeload.github.com/reorx/sui2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256115,"owners_count":20909240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T13:00:59.605Z","updated_at":"2025-04-04T22:09:11.764Z","avatar_url":"https://github.com/reorx.png","language":"JavaScript","readme":"# SUI2\n\n*a startpage for your server and / or new tab page*\n\nOriginally forked from [sui](https://github.com/jeroenpardon/sui), sui2 adds\nnew features like keyboard navigation and PWA to boost your productivity.\nIt's a complete refactor, brings new technologies for easier development \u0026 deployment.\n\nSee how keyboard navigation works in action:\n\n\u003cvideo src=\"https://user-images.githubusercontent.com/405972/193420471-7454270e-7bcc-43cc-a61d-e8b65e6b09f3.mov\"\u003e\u003c/video\u003e\n\n\n## Deploy to any static hosting\n\nsui2 uses Vite to build a staic website, which means it's nothing but vanilla HTML/CSS/JavaScript that could be deployed to anywhere you want.\n\nTo build the project, simply follow the steps below.\n\n1. Install dependencies: `npm i`\n2. Create you own `data.json`\n\n   sui2 get all the data it requires from `data.json`, you can make a copy from `data.example.json`, and then edit it with your own applications and bookmarks.\n3. Build the result: `npm run build`\n\n   The result will be stored in the `dist` folder\n4. Upload to a static hosting.\n\n   There are various hosting services like GitHub Pages, Cloudflare Pages, Netlify.\n   Examples will be documented later on.\n\nIf you are happy with the look and functionality of sui2, it is recommended to use this project as a submodule rather than fork it. Please checkout [reorx/start](https://github.com/reorx/start) as an example for how to use it in another project, and how to build with GitHub Actions and deploy to Cloudflare Pages.\n\n## Deploy using Docker\n\n\u003e Notice: to make the preview page in live editor work more predictable, Docker image does not provide PWA support\n\nsui2 provides a Docker image that runs a NodeJS server,\nwhich not only servers the startpage directly,\nbut also gives you an interface to edit and build the startpage lively.\n\n![SUI2 Live Editor](images/live-editor.png)\n\nThe image is hosted on Docker hub at: [reorx/sui2](https://hub.docker.com/r/reorx/sui2)\n\nRun the following command to get started:\n\n```bash\ndocker run --rm -t -p 3000:3000 -v data:/data reorx/sui2\n```\n\nCommand explained:\n\n- `-p 3000:3000`: the server runs on port 3000, you need to specify the port on host to expose, if you want to access it from 5000, you can change the argument to `-p 5000:3000`\n- `-v data:/data`: you need to attach a volume to `/data`, which stores the config and static resources of the startpage\n\nAfter the container is alive, open `http://DOCKER_HOST:3000/` to see the initial startpage.\n\nFor the live editor, open `http//DOCKER_HOST:3000/editor/`, there's no link for it on the startpage.\n\nCheckout the configuration file [fly.toml](https://github.com/reorx/sui2/blob/master/fly.toml) as an example for how to deploy the Docker image to fly.io\n\n### Build Docker Image\n\nCurrently, the image has only amd64 and arm64 variants, if your architecture is not one of these,\nplease build the image by yourself, simply by running:\n\n```\ndocker buildx build -t sui2 .\n```\n\nNotice that BuildKit (buildx) must be used to get the `TARGETARCH` argument,\nsee [Automatic platform ARGs in the global scope](https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope)\n\n\n## `data.json` editing\n\nThere's a full example in [data.example.json](https://github.com/reorx/sui2/blob/master/data.example.json),\nit's self explanatory so I'm not going to write too much about it, maybe a json schema will be created as a supplement in the future.\n\nThe only thing worth mentioning here is the `icon` attribute,\nit uses the [MDI icon set from Iconify](https://icon-sets.iconify.design/mdi/), you can find any icon you like in this page, and use the name after `mdi:` as the value for the `icon` attribute. For example `mdi:bread-slice` should be used as `\"icon\": \"bread-slice\"` in `data.json`.\n\n## Development\n\nDeveloping the startpage is easy, first clone the project, then run the following:\n\n```bash\nnpm install\n\n# start vite dev server\nnpm run dev\n```\n\nDeveloping the live-server is a little bit tricky, `live-server/` is an independent package with an express server and another vite frontend.\n\n```bash\ncd live-server\nnpm install\n\n# start the express server on port 3000\nnpm run dev-backend\n\n# open another shell, then start vite dev server\nnpm run dev\n```\n\nThe output of `npm run dev` looks like this:\n\n```\n  ➜  Local:   http://localhost:5173/editor/\n```\n\nYou can now open this URL to start developing live-server.\nThe fetch requests of `/api` and `/preview` on this page will be proxied to\nthe express server on port 3000. The default data folder is at `live-server/data/`.\n\n## TODO\n\nSome other features I plan to work in the future, PRs are welcome.\n\n- [ ] Custom theme editor\n- [ ] Support dynamically render the page from `data.json`. This makes it possible to host a sui2 distribution that is changable without the building tools.\n- [ ] A chrome extension that shows sui2 in a popup.\n- [ ] Add new tab support for the chrome extension.\n\n## Donation\n\nIf you think this project is enjoyable to use, or saves some time,\nconsider giving me a cup of coffee :)\n\n- [GitHub Sponsors - reorx](https://github.com/sponsors/reorx/)\n- [Ko-Fi - reorx](https://ko-fi.com/reorx)\n","funding_links":["https://github.com/sponsors/reorx","https://ko-fi.com/reorx","https://github.com/sponsors/reorx/"],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freorx%2Fsui2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freorx%2Fsui2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freorx%2Fsui2/lists"}