
# 1.0.0-dev.1 (2024-07-10) ### Bug Fixes * Add missing auth realm ([a6008a2](a6008a2fb6
)) * Add missing OpenAPI docs ([d4ac471](d4ac47194e
)) * add required headers ([#8](https://github.com/ReVanced/revanced-api/issues/8)) ([f4c10dc](f4c10dc064
)) * Add uri to rate limiter request key ([e8c2488](e8c2488bc6
)) * **ci:** add git dep ([d61ddcc](d61ddcc8ac
)) * **ci:** fix git deps ([5564c2d](5564c2da09
)) * Correct env var comment ([9d7b049](9d7b049349
)) * Correct persistence directory name ([6238e33](6238e33c42
)) * **deps:** fix requirements file ([5f0ab26](5f0ab26ced
)) * **deps:** missing pydantic ([089f29e](089f29e95f
)) * **deps:** update poetry.lock ([b2c2fa7](b2c2fa7136
)) * Don't configure server ([280dbc3](280dbc30f6
)) * Encode defaults to fix OpenAPI spec ([e9d1c8f](e9d1c8fae0
)) * Finish DB Model to API model transformation inside transaction ([89a577e](89a577e91a
)) * fix codeql issues ([b5568db](b5568db79f
)) * Fix spelling mistake ([17ecf58](17ecf58e55
)) * Increase pool size to mitigate overflow ([#113](https://github.com/ReVanced/revanced-api/issues/113)) ([5aed3d6](5aed3d6ce6
)) * Remove punctuation ([f9cae1e](f9cae1ea56
)) * remove revanced-api from tools map ([4800ee9](4800ee96a8
)) * Serialize response correctly ([1dccfd2](1dccfd2def
)) * Set body for all eligible request methods ([c6cacef](c6cacef907
)) * unversioned endpoints placement under v0 should be at root ([8b29f49](8b29f49805
)) * Use correct persistance folder path ([500a589](500a5896e3
)) * Use correct proxy path ([ef92768](ef927688a3
)) * Use correct resource path ([4dffd32](4dffd32c99
)) * Use multidict 6.0.5, add setup tools as dev dependency ([af19446](af19446a67
)) ### Features * Add `/list` route ([6c930ff](6c930fff9a
)) * Add `preferred` field to socials ([#100](https://github.com/ReVanced/revanced-api/issues/100)) ([24c8f60](24c8f60a70
)) * Add announcements API ([42f7318](42f731854d
)) * Add announcements endpoints ([#91](https://github.com/ReVanced/revanced-api/issues/91)) ([8583e2a](8583e2a2bb
)) * Add backend rate limit route ([b967170](b9671703be
)) * Add CLI ([a988ffb](a988ffbd23
)) * add download_count to releases ([#118](https://github.com/ReVanced/revanced-api/issues/118)) ([665b913](665b913c04
)) * add friendly crypto names ([#53](https://github.com/ReVanced/revanced-api/issues/53)) ([7b70780](7b707807cc
)) * Add GPG key to team members ([71f58cf](71f58cf352
)) * Add local ReVanced API server ([cd5d57f](cd5d57f8f8
)) * add member gpg keys ([80cdb3b](80cdb3be6a
)) * Add OpenAPI docs and cache to routes ([6ea63be](6ea63be490
)) * add preferred field to donations ([#56](https://github.com/ReVanced/revanced-api/issues/56)) ([6b705b1](6b705b1054
)) * Add proxy for old API ([39f54bb](39f54bbb32
)) * Add rate limiting to routes ([80403f7](80403f7130
)) * added branding ([#104](https://github.com/ReVanced/revanced-api/issues/104)) ([edcad62](edcad620f2
)) * API Fixes and Adjustments ([#23](https://github.com/ReVanced/revanced-api/issues/23)) ([b18097e](b18097e030
)) * API rewrite ([#2](https://github.com/ReVanced/revanced-api/issues/2)) ([45ef337](45ef33741c
)) * better versioning engine ([8d36663](8d36663610
)) * Change default port to avoid using existing port ([9825865](9825865bbc
)) * Disallow all web crawlers ([#111](https://github.com/ReVanced/revanced-api/issues/111)) ([b69acfa](b69acfa8d7
)) * Do not ignore, if `.env` file is missing ([24c6f4e](24c6f4e435
)) * favicon ([a8126d7](a8126d785f
)) * hostname filtering ([5482d9c](5482d9c442
)) * Implement more routes and add configuration ([9999b24](9999b242ad
)) * Improve routing paths ([df999c0](df999c00c4
)) * info endpoint ([#71](https://github.com/ReVanced/revanced-api/issues/71)) ([9bbd056](9bbd056c1b
)) * Initialize project ([8ae50b5](8ae50b543e
)) * Load system properties ([e373d26](e373d26998
)) * manager-related endpoints ([3a128c4](3a128c4661
)) * Move config file to CLI argument ([6a9f0ca](6a9f0cadac
)) * **observability:** sentry ([99e645c](99e645c5f5
)) * project init ([856fc66](856fc66717
)) * remove appinfo capabilities ([10f5225](10f5225f51
)) * remove codecov tests ([9c69fa3](9c69fa3b92
)) * Remove Swagger and OpenAPI ([af0b086](af0b0865f4
)) * Setup CI/CD ([c736a75](c736a75d92
)) * Setup cors and cache ([205bcde](205bcde77a
)) * Show default CLI option values ([db0bfc3](db0bfc3be5
)) * Use auth digest instead of basic auth ([89e2acf](89e2acfebb
)) * Use Jetty instead of Netty ([c23cd5c](c23cd5cdad
)) * use objects for /socials and /donations ([#51](https://github.com/ReVanced/revanced-api/issues/51)) ([d4eac5c](d4eac5c757
)) * use objects for contact field ([5922830](5922830e0b
)) ### Performance Improvements * Cache latest announcements for constant access time ([1ca9952](1ca9952de8
)) * Cache patches list instead of just the patches file ([7a1957d](7a1957d013
)) * Make async db transactions and use List instead of Set ([a7d1892](a7d1892343
))
Continuing the legacy of Vanced
🚀 ReVanced API
API server for ReVanced.
❓ About
ReVanced API is a server that is used as the backend for ReVanced. ReVanced API acts as the data source for ReVanced Website and powers ReVanced Manager with updates and ReVanced Patches.
💪 Features
Some of the features ReVanced API include:
- 📢 Announcements: Post and get announcements grouped by channels
- ℹ️ About: Get more information such as a description, ways to donate to, and links of the hoster of ReVanced API
- 🧩 Patches: Get the latest updates of ReVanced Patches, directly from ReVanced API
- 👥 Contributors: List all contributors involved in the project
- 🔄 Backwards compatibility: Proxy an old API for migration purposes and backwards compatibility
🚀 How to get started
ReVanced API can be deployed as a Docker container or used standalone.
🐳 Docker
To deploy ReVanced API as a Docker container, you can use Docker Compose or Docker CLI.
The Docker image is published on GitHub Container registry,
so before you can pull the image, you need to authenticate to the Container registry.
🗄️ Docker Compose
- Create an
.env
file using .env.example as a template - Create a
configuration.toml
file using configuration.example.toml as a template - Create a
docker-compose.yml
file using docker-compose.example.yml as a template - Run
docker-compose up -d
to start the server
💻 Docker CLI
- Create an
.env
file using .env.example as a template - Create a
configuration.toml
file using configuration.example.toml as a template - Start the container using the following command:
docker run -d --name revanced-api \ # Mount the .env file -v $(pwd)/.env:/app/.env \ # Mount the configuration.toml file -v $(pwd)/configuration.toml:/app/configuration.toml \ # Mount the persistence folder -v $(pwd)/persistence:/app/persistence \ # Expose the port 8888 -p 8888:8888 \ # Use the start command to start the server -e COMMAND=start \ # Pull the image from the GitHub Container registry ghcr.io/revanced/revanced-api:latest
🖥️ Standalone
To deploy ReVanced API standalone, you can either use the pre-built executable or build it from source.
📦 Pre-built executable
A Java Runtime Environment (JRE) must be installed.
- Download ReVanced API to a folder
- In the same folder, create an
.env
file using .env.example as a template - In the same folder, create a
configuration.toml
file using configuration.example.toml as a template - Run
java -jar revanced-api.jar start
to start the server
🛠️ From source
A Java Development Kit (JDK) and Git must be installed.
- Run
git clone git@github.com:ReVanced/revanced-api.git
to clone the repository - Copy .env.example to
.env
and fill in the required values - Copy configuration.example.toml to
configuration.toml
and fill in the required values - Run
gradlew run --args=start
to start the server
📚 Everything else
📙 Contributing
Thank you for considering contributing to ReVanced API. You can find the contribution guidelines here.
🛠️ Building
To build ReVanced API, a Java Development Kit (JDK) and Git must be installed.
Follow the steps below to build ReVanced API:
- Run
git clone git@github.com:ReVanced/revanced-api.git
to clone the repository - Run
gradlew build
to build the project
📜 Licence
ReVanced API is licensed under the AGPLv3 licence. Please see the licence file for more information. tl;dr you may copy, distribute and modify ReVanced API as long as you track changes/dates in source files. Any modifications to ReVanced API must also be made available under the GPL along with build & install instructions.