SoliVerse is a social media server.
There is a diagram of the database schema stored in this file. To view and edit it, use the vuerd tool.
Clone the project and install dependencies with:
npm install
Create a .env
file with:
npm run make-env
Adjust the resulting .env
file to have the correct DB url.
Get the database schema up to date with:
npm run migrate up
Start a development server and open it in the browser, which will hot-reload changes, with:
npm run dev -- --open
If a change requires updating the DB's schema, create a new migration with:
npm run migrate create $NAME
The most recent migration can be undone with:
npm run migrate down
The project uses the following major dependencies:
- SolidStart — application framework
- Solid - component framework
- UnoCSS — atomic CSS framework
- PostgreSQL (via postgres) — database
VS Code is highly recommended for development. Install the recommended extensions to be consistent with other developers.
Compile a production build of SoliVerse with:
npm run build
SoliVerse deployed with adapters, which optimize your project for deployment to different services.
By default, SoliVerse makes a node app that can run on any server. To use a different adapter (e.g. for serverless deployment), add one to the devDependencies
in package.json
and specify it in your vite.config.js
. The official adapters are the start-*
packages listed here.
The node app can be started with:
npm start
SoliVerse follows in the footsteps of other federated social media projects, like Mastodon and Pleroma, and is licensed under the AGPL license. Read the LICENSE
file for more details.