Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ python -m venv .venv && source .venv/bin/activate
pip install -U pip
pip install -e .
alembic upgrade head
uvicorn app.main:app --reload
hypercorn app.main:app --reload
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
```

### Frontend
Expand Down
2 changes: 1 addition & 1 deletion backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/healthz').read()" || exit 1

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
CMD ["hypercorn", "app.main:app", "--bind", "0.0.0.0:8000", "--access-logfile", "-", "--error-logfile", "-"]
Comment thread
seonghobae marked this conversation as resolved.
Resolved
1 change: 1 addition & 0 deletions backend/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ version = "0.1.0"
requires-python = ">=3.10"
dependencies = [
"fastapi>=0.115.0",
"hypercorn>=0.16.0",
"uvicorn[standard]>=0.30.0",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
"pydantic>=2.8.0",
"pydantic-settings>=2.4.0",
Expand Down
43 changes: 40 additions & 3 deletions backend/requirements.lock
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile backend/pyproject.toml --generate-hashes -o backend/requirements.lock
# uv pip compile /Users/seonghobae/clouderd/backend/pyproject.toml --generate-hashes -o /Users/seonghobae/clouderd/backend/requirements.lock
alembic==1.18.3 \
--hash=sha256:1212aa3778626f2b0f0aa6dd4e99a5f99b94bd25a0c1ac0bba3be65e081e50b0 \
--hash=sha256:12a0359bfc068a4ecbb9b3b02cf77856033abfdb59e4a5aca08b7eacd7b74ddd
Expand Down Expand Up @@ -238,7 +238,10 @@ ecdsa==0.19.1 \
exceptiongroup==1.3.1 \
--hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \
--hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598
# via anyio
# via
# anyio
# hypercorn
# taskgroup
fastapi==0.128.0 \
--hash=sha256:1cc179e1cef10a6be60ffe429f79b829dce99d8de32d7acb7e6c8dfdf7f2645a \
--hash=sha256:aebd93f9716ee3b4f4fcfe13ffb7cf308d99c9f3ab5622d8877441072561582d
Expand Down Expand Up @@ -303,7 +306,17 @@ h11==0.16.0 \
--hash=sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86
# via
# httpcore
# hypercorn
# uvicorn
# wsproto
h2==4.3.0 \
--hash=sha256:6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1 \
--hash=sha256:c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd
# via hypercorn
hpack==4.1.0 \
--hash=sha256:157ac792668d995c657d93111f46b4535ed114f0c9c8d672271bbec7eae1b496 \
--hash=sha256:ec5eca154f7056aa06f196a557655c5b009b382873ac8d1e66e79e87535f1dca
# via h2
httpcore==1.0.9 \
--hash=sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55 \
--hash=sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8
Expand Down Expand Up @@ -357,6 +370,14 @@ httpx==0.28.1 \
--hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \
--hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad
# via pg-erd-cloud-backend (backend/pyproject.toml)
hypercorn==0.18.0 \
--hash=sha256:225e268f2c1c2f28f6d8f6db8f40cb8c992963610c5725e13ccfcddccb24b1cd \
--hash=sha256:d63267548939c46b0247dc8e5b45a9947590e35e64ee73a23c074aa3cf88e9da
# via pg-erd-cloud-backend (backend/pyproject.toml)
hyperframe==6.1.0 \
--hash=sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5 \
--hash=sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08
# via h2
idna==3.11 \
--hash=sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea \
--hash=sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902
Expand Down Expand Up @@ -458,6 +479,10 @@ markupsafe==3.0.3 \
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
# via mako
priority==2.0.0 \
--hash=sha256:6f8eefce5f3ad59baf2c080a664037bb4725cd0a790d53d59ab4059288faf6aa \
--hash=sha256:c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0
# via hypercorn
psycopg==3.3.2 \
--hash=sha256:3e94bc5f4690247d734599af56e51bae8e0db8e4311ea413f801fef82b14a99b \
--hash=sha256:707a67975ee214d200511177a6a80e56e654754c9afca06a7194ea6bbfde9ca7
Expand Down Expand Up @@ -823,6 +848,10 @@ starlette==0.50.0 \
--hash=sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca \
--hash=sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca
# via fastapi
taskgroup==0.2.2 \
--hash=sha256:078483ac3e78f2e3f973e2edbf6941374fbea81b9c5d0a96f51d297717f4752d \
--hash=sha256:e2c53121609f4ae97303e9ea1524304b4de6faf9eb2c9280c7f87976479a52fb
# via hypercorn
tomli==2.4.0 \
--hash=sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729 \
--hash=sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b \
Expand Down Expand Up @@ -871,7 +900,9 @@ tomli==2.4.0 \
--hash=sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132 \
--hash=sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa \
--hash=sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087
# via alembic
# via
# alembic
# hypercorn
typing-extensions==4.15.0 \
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
Expand All @@ -881,11 +912,13 @@ typing-extensions==4.15.0 \
# cryptography
# exceptiongroup
# fastapi
# hypercorn
# psycopg
# pydantic
# pydantic-core
# sqlalchemy
# starlette
# taskgroup
# typing-inspection
# uvicorn
typing-inspection==0.4.2 \
Expand Down Expand Up @@ -1123,3 +1156,7 @@ websockets==16.0 \
--hash=sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da \
--hash=sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4
# via uvicorn
wsproto==1.3.2 \
--hash=sha256:61eea322cdf56e8cc904bd3ad7573359a242ba65688716b0710a5eb12beab584 \
--hash=sha256:b86885dcf294e15204919950f666e06ffc6c7c114ca900b060d6e16293528294
# via hypercorn
3 changes: 2 additions & 1 deletion compose.prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ services:
environment:
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-erd}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-erd}
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:${FRONTEND_PORT:-8080}}
APP_SECRET: ${APP_SECRET:?set in .env}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
depends_on:
postgres:
condition: service_healthy
Expand All @@ -34,7 +35,7 @@ services:
command: >
sh -lc "
alembic upgrade head &&
uvicorn app.main:app --host 0.0.0.0 --port 8000
hypercorn app.main:app --bind 0.0.0.0:8000 --access-logfile - --error-logfile -
"
restart: unless-stopped

Expand Down
4 changes: 3 additions & 1 deletion compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ services:
environment:
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-erd}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-erd}
CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:${FRONTEND_PORT:-5173}}
# Dev default only; override via .env in real deployments.
APP_SECRET: ${APP_SECRET:-dev-only-change-me}
depends_on:
postgres:
condition: service_healthy
Expand All @@ -36,7 +38,7 @@ services:
command: >
sh -lc "
alembic upgrade head &&
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
hypercorn app.main:app --bind 0.0.0.0:8000 --reload --access-logfile - --error-logfile -
"
restart: unless-stopped

Expand Down
Loading