docker compose -f docker/docker-compose.yml logs web WARN[0000] The "SMTP_USER" variable is not set. Defaulting to a blank string. WARN[0000] The "SMTP_PASSWORD" variable is not set. Defaulting to a blank string. WARN[0000] The "SMTP_PORT" variable is not set. Defaulting to a blank string. WARN[0000] The "SMTP_HOST" variable is not set. Defaulting to a blank string. WARN[0000] The "RECAPTCHA_SECRET" variable is not set. Defaulting to a blank string. WARN[0000] The "RECAPTCHA_SITE_KEY" variable is not set. Defaulting to a blank string. WARN[0000] The "GITBUCKET_URL" variable is not set. Defaulting to a blank string. WARN[0000] The "DATABASE_URL" variable is not set. Defaulting to a blank string. WARN[0000] /volume1/Docker/geekbrain-portfolio/docker/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion web-1 | INFO: Started server process [1] web-1 | INFO: Waiting for application startup. web-1 | INFO: Application startup complete. web-1 | INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) web-1 | INFO: 172.19.0.1:39604 - "GET /health HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:43982 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:43982 - "GET /css/style.css HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:43994 - "GET /assets/images/Geekbrain-io.png HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:44004 - "GET /js/main.js HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:43994 - "GET /favicon.ico HTTP/1.1" 404 Not Found web-1 | INFO: 172.19.0.1:43994 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:43994 - "GET /contact HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/contact.py", line 15, in contact_page web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:44020 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:44020 - "GET /projects HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/projects.py", line 11, in projects web-1 | repos = await fetch_repos() web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/services/gitbucket.py", line 16, in fetch_repos web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:47116 - "GET /robots.txt HTTP/1.1" 404 Not Found web-1 | INFO: 172.19.0.1:47124 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:47100 - "GET /contact HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/contact.py", line 15, in contact_page web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:47136 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:47136 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:54242 - "GET /contact HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/contact.py", line 15, in contact_page web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:36944 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36948 - "GET /assets/images/Geekbrain-io.png HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36950 - "GET /js/main.js HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36958 - "GET /css/style.css HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36974 - "GET /favicon.ico HTTP/1.1" 404 Not Found web-1 | INFO: 172.19.0.1:38008 - "GET /projects HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/projects.py", line 11, in projects web-1 | repos = await fetch_repos() web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/services/gitbucket.py", line 16, in fetch_repos web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:38012 - "GET / HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:38022 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:38028 - "GET /projects HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/projects.py", line 11, in projects web-1 | repos = await fetch_repos() web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/services/gitbucket.py", line 16, in fetch_repos web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:38032 - "GET /contact HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/contact.py", line 15, in contact_page web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: Shutting down web-1 | INFO: Waiting for application shutdown. web-1 | INFO: Application shutdown complete. web-1 | INFO: Finished server process [1] web-1 | INFO: Started server process [1] web-1 | INFO: Waiting for application startup. web-1 | INFO: Application startup complete. web-1 | INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) web-1 | INFO: 172.19.0.1:36640 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36652 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36658 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:36664 - "GET /about HTTP/1.1" 200 OK web-1 | INFO: 172.19.0.1:40722 - "GET /projects HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/projects.py", line 11, in projects web-1 | repos = await fetch_repos() web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/services/gitbucket.py", line 16, in fetch_repos web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing web-1 | INFO: 172.19.0.1:40730 - "GET /contact HTTP/1.1" 500 Internal Server Error web-1 | ERROR: Exception in ASGI application web-1 | Traceback (most recent call last): web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi web-1 | result = await app( # type: ignore[func-returns-value] web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in __call__ web-1 | return await self.app(scope, receive, send) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1106, in __call__ web-1 | await super().__call__(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__ web-1 | await self.middleware_stack(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__ web-1 | await self.app(scope, receive, _send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__ web-1 | raise exc web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__ web-1 | await self.app(scope, receive, sender) web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__ web-1 | raise e web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__ web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__ web-1 | await route.handle(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle web-1 | await self.app(scope, receive, send) web-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 66, in app web-1 | response = await func(request) web-1 | ^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 274, in app web-1 | raw_response = await run_endpoint_function( web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 191, in run_endpoint_function web-1 | return await dependant.call(**values) web-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ web-1 | File "/app/app/routes/contact.py", line 15, in contact_page web-1 | settings = get_settings() web-1 | ^^^^^^^^^^^^^^ web-1 | File "/app/app/config.py", line 21, in get_settings web-1 | return Settings() web-1 | ^^^^^^^^^^ web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic_settings/main.py", line 71, in __init__ web-1 | super().__init__( web-1 | File "/usr/local/lib/python3.11/site-packages/pydantic/main.py", line 164, in __init__ web-1 | __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__) web-1 | pydantic_core._pydantic_core.ValidationError: 2 validation errors for Settings web-1 | smtp_port web-1 | Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/int_parsing web-1 | gitbucket_url web-1 | Input should be a valid URL, input is empty [type=url_parsing, input_value='', input_type=str] web-1 | For further information visit https://errors.pydantic.dev/2.5/v/url_parsing