This is the API server used by Odysee, mostly acting as a bridge between web and the blockchain.
go install github.com/volatiletech/sqlboiler
go install github.com/volatiletech/sqlboiler/drivers/sqlboiler-psql
1. Launch the core environment containers
docker compose up -d
Note: if you're running a LBRY desktop app or a lbrynet instance, you will have to either shut it down or change its ports
2. Set up database schema if this is your first launch
go run . db_migrate_up
3. Generate RSA key file
ssh-keygen -t rsa -f token_privkey.rsa -m pem
4. Start Odysee API server
go run .
5. Clone lbry-desktop repo, if you don't have it
cd ..
git clone git@github.com:lbryio/lbry-desktop.git
6. Launch UI in lbry-desktop repo folder
SDK_API_URL=http://localhost:8080 yarn dev:web
Make sure you have recent enough Docker and docker compose
installed.
1. Initialize and launch the containers
This will pull and launch SDK and postgres images, which Odysee API requires to operate.
docker compose -f docker-compose.yml -f docker compose.app.yml up -d
Note: if you're running a LBRY desktop app or lbrynet instance, you will have to either shut it down or change ports
2. Clone lbry-desktop repo, if you don't have it
cd ..
git clone git@github.com:lbryio/lbry-desktop.git
3. Launch UI in lbry-desktop repo folder
LBRY_WEB_API=http://localhost:8080 yarn dev:web
4. Open http://localhost:9090/ in Chrome or Firefox for best experience
- Create a schema migration
- Apply schema migration with
go run . db_migrate_up
- Run
make models
for sqlboiler to pick up the changes
Make sure you have lbrynet
, postgres
and postgres-collector
containers running and run make prepare_test test
.
Make sure you have Go 1.22 installed.
Then build the binary, create a docker image locally and run off it:
make oapi && make oapi_image
Check readme files to see available builds for other services like forklift
and uploads
.
Note: If your default go
version is different from 1.22, you can supply alternative Go binary path to make
commands:
go=1.22.1 make oapi
This project is using CalVer YY.MM.MINOR since February 2021 (SemVer prior to that)
Contributions to this project are welcome.
Please ensure that your code builds and automated tests run successfully before pushing your branch. You must go fmt
your code before you commit it, or the build will fail.
This project is MIT licensed. For the full license, see LICENSE.
We take security seriously. Please contact security@lbry.io regarding any issues you may encounter. Our PGP key is here if you need it.
The primary contact for this project is @anbsky (andrey.beletsky@odysee.com).