Desktop+Web app for self-publishing, powered by the open Hypermedia protocol
npx skills add https://github.com/seed-hypermedia/seed --skill pencil-designCLI를 사용하여 이 스킬을 설치하고 작업 공간에서 SKILL.md 워크플로 사용을 시작하세요.
Seed is a decentralized knowledge collaboration application for open
communities powered by a knowledge graph.
You can read more about the product and why we are here on our website: https://seed.hyper.media.
Seed Hypermedia is powered by the new Hypermedia Web Protocol. This
open protocol provides secure identities, version control, semantic documents, multimedia,
and groups/organizations.
This repo includes:
This is software is being actively developed, and may contain bugs and rough edges.
We appreciate any feedback and bug reports, so if you find any, please open an issue.
The permanent data format has been declared stable, and we don't expect any breaking changes there.
Documentation is still missing though, but it will come.
We still recommend you to have a copy of anything valuable you put into the app, while we are polishing it,
and improving the overall stability.
See the developer setup page for detailed instructions.
The dev environment on macOS+Linux uses the Mise,
and Direnv.
The bare minimum required for compilation is to have Go, and NodeJS toolchains
installed.
./dev is the main dev CLI. Run ./dev to list commands, including:
./dev run-desktop./dev run-desktop-mainnet./dev build-desktop./dev run-site./dev build-siteTo run the dev build with the production network, use the following command:
SEED_P2P_TESTNET_NAME="" ./dev run-desktop
pnpm test # test all the packages
pnpm desktop:test # test desktop app (e2e only now)
pnpm site:test # test only site code (WIP)
Group sites need two programs to run. The daemon which includes the P2P node (go app)
and the frontend that renders documents (nextjs app). However for a production
deployment everything is orchestrated by docker compose. Read next sections for how to
either deploy a site on a production server or run it locally in dev mode
To deploy a group into a site, make sure you have a domain name and
a server with the following requirements:
After checking that, run the following command in the server:
sh <(curl -sL https://raw.githubusercontent.com/seed-hypermedia/seed/main/website_deployment.sh) https://example.com
replacing https://example.com by your <address> If everything went well,
after some seconds, you should be watching a final output line like
https://example.com/secret-invite/XXXX. You should paste that link back into
the owner's application to register the newly created site and start publihing.
The site deployment workspace will default to ~/.seed-site.
If you want the site to auto update to latest stable images when they are pushed,
just execute the installation command with the --auto-update flag. Ex:
sh <(curl -sL https://raw.githubusercontent.com/seed-hypermedia/seed/main/website_deployment.sh) https://example.com --auto-update
If you want to replace an old site with a new site in a different domain in the same machine,
you need to redeploy the site from scratch. Note that old content will be available as long as
the owner of the site is synced with the site at the moment of the replacement. On the server:
docker stop seed-web
mv ~/.seed-site ~/.seed-site.bak
docker start seed-web
Get the new secret link from the command line after starting the seed-web container
Now in the Seed App, the Owner of the site can go to the group he/she wants to (re)deploy
and click on the three dots, and publish group to site. Enter the new secret and the old content
should be now available in the new site. If there is no new content (A completely new group), then
the site will be empty ready to accept documents