Skip to content

Commit b95b89d

Browse files
committed
[FEAT] argilla server: Parameterize uvicorn app for extended apps (#5452)
# Description <!-- Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change. --> This PR adds a minimal change to allow users to extend in an easy (but not easiest) server app. Users can use an extended version of the FastAPI app including their endpoints when launching the docker container by setting the `UVICORN_APP` environment variable. This is related to this [discord thread](https://discord.com/channels/879548962464493619/1278288595312054363) An example of usage [here](https://huggingface.co/spaces/frascuchon/extend-argilla-api-example/tree/main) **Type of change** <!-- Please delete options that are not relevant. Remember to title the PR according to the type of change --> - Improvement (change adding some improvement to an existing functionality) **How Has This Been Tested** <!-- Please add some reference about how your feature has been tested. --> **Checklist** <!-- Please go over the list and make sure you've taken everything into account --> - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/)
1 parent d23bf2d commit b95b89d

File tree

3 files changed

+6
-1
lines changed

3 files changed

+6
-1
lines changed

argilla-server/docker/server/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ ENV API_KEY=""
2424
ENV ARGILLA_HOME_PATH=/var/lib/argilla
2525
## Uvicorn defaults
2626
ENV UVICORN_PORT=6900
27+
### Uvicorn app. Extended apps can override this variable
28+
ENV UVICORN_APP=argilla_server:app
2729

2830
RUN useradd -ms /bin/bash argilla
2931

@@ -40,6 +42,7 @@ VOLUME $ARGILLA_HOME_PATH
4042
COPY scripts/start_argilla_server.sh /home/argilla
4143
# Destination folder must be the same as the builder one. Otherwise installed script won't work (since the installation fixes the path inside the script)
4244
COPY --chown=argilla:argilla --from=builder /opt/venv /opt/venv
45+
4346
ENV PATH="/opt/venv/bin:$PATH"
4447

4548
WORKDIR /home/argilla

argilla-server/docker/server/scripts/start_argilla_server.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ fi
3737
# with the prefix UVICORN_. For example, in case you want to
3838
# run the app on port 5000, just set the environment variable
3939
# UVICORN_PORT to 5000.
40-
python -m uvicorn argilla_server:app --host "0.0.0.0"
40+
41+
python -m uvicorn $UVICORN_APP --host "0.0.0.0"

argilla/docs/reference/argilla-server/configuration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ The following environment variables are useful only when PostgreSQL is used:
100100

101101
- `API_KEY`: The default user api key to user. If API_KEY is not provided, a new random api key will be generated (Default: `""`).
102102

103+
- `UVICORN_APP`: [Advanced] The name of the FastAPI app to run. This is useful when you want to extend the FastAPI app with additional routes or middleware. The default value is `argilla_server:app`.
103104

104105
## REST API docs
105106

0 commit comments

Comments
 (0)