Setup guide
How to build?
See doc/dev/build.md
How to deploy?
How to connect to running server?
tl;dr: Grab any third-party client, modify its endpoints (if needed), and login / supply token as it is done normally with that client.
Lets assume you have started the server locally with default config and now it
is running at localhost:9000.
Then, depending on client you have chosen:
- To log in via JankClient you should set client’s
api urltohttp://localhost:9000/api/v9right at the login page and be able to successfully log in. - Disrust requires extensive patching. Not only you have to replace HTTP and WS endpoint domains, but also edit some code as DCAS has slightly different API data model.
- GoofCord appears to be fully working, but you have to somehow deploy the official client on your server first.
Alternatively you can patch web client or android app.
Migrations
“Universal” migration guide:
mv server/dcas.sqlite server/dcas.sqlite.bak # Make current DB a backup
cargo run -- --create-data-only # Generate empty DB
./tools/migrate.py # Run migration tool
cargo run # Check that all works fine
Voice & CDN (March-August)
ALTER TABLE stream_state ADD COLUMN paused INTEGER DEFAULT 0;
ALTER TABLE channel ADD COLUMN serving_voice_session INTEGER REFERENCES session (id) ON DELETE SET NULL;
DROP TABLE attach_reservation;
Also set X-Dcas-Region header on nginx side.