You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
env vars don't affect typetype, typetype-server or typetype-downloader urls.
Steps to reproduce
Set YOUTUBE_REMOTE_LOGIN_CALLBACK_ORIGIN: http://typetype-server.domain.local:8080
Receive errors:
typetype 2026/09/05 12:28:58 [error] 37#37: typetype-server could not be resolved (3: Host not found)
typetype 2026/09/05 12:28:58 [error] 37#37: typetype-token could not be resolved (3: Host not found)
typetype 2026/09/05 12:28:58 [error] 37#37: typetype-downloader could not be resolved (3: Host not found)
Here is what the configuration variables actually do. One important distinction: a variable supported by a service is not necessarily configurable through the root .env. Compose must explicitly pass it through.
Service addresses
Variable
Used by
Purpose
Current Compose behavior
DOWNLOADER_SERVICE_URL
Server
Address used to contact Downloader.
Hardcoded to http://typetype-downloader:18093.
SUBTITLE_SERVICE_URL
Server
Token service address. Despite its name, it is also passed to the YouTube extraction setup.
Not explicitly passed in stable Compose; Server uses its default.
YOUTUBE_REMOTE_LOGIN_SERVICE_URL
Server
Token service address for remote YouTube login.
Hardcoded to http://typetype-token:8081.
YOUTUBE_REMOTE_LOGIN_CALLBACK_BASE_URL
Server
Server address used to build the login completion callback URL.
Hardcoded to http://typetype-server:8080.
YOUTUBE_REMOTE_LOGIN_CALLBACK_ORIGIN
Token
Allowed origin for the callback URL supplied by Server. It validates the destination; it does not set it.
Read from .env.
TYPETYPE_API_BASE
Downloader
Address used to contact Server.
Hardcoded to http://typetype-server:8080.
PUBLIC_BASE_URL
Downloader
Base URL used for Downloader's public links.
Fixed to /api/downloader.
YOUTUBE_OUTBOUND_PROXY_URL
Server and Token
Outbound proxy for YouTube requests.
Read from .env.
Nginx separately hardcodes all three service addresses. None of the callback settings changes those Nginx destinations.
File-based alternatives used by stable Compose for those secrets.
YOUTUBE_REMOTE_LOGIN_TTL_MS
Remote-login session lifetime. Root Compose passes this to Server, but does not explicitly pass it to Token.
YOUTUBE_REMOTE_LOGIN_MAX_SESSIONS
Remote-login concurrency limit, passed to Server and Token.
YOUTUBE_REMOTE_LOGIN_FRAME_FPS
Remote-browser frame rate, used by Token.
YOUTUBE_REMOTE_LOGIN_MAX_FRAME_BYTES
Remote-browser frame size limit, passed to Server and Token.
GITHUB_REPO
Destination repository in the prefilled GitHub issue link generated from an admin bug report. Used, not obsolete.
GITHUB_ISSUE_TEMPLATE
Template included in that link. Used, but the default bug_report_backend.md is outdated; the repository now contains bug_report.yml.
This covers the root .env.example and the application settings explicitly passed by the two Compose files. Individual services also support additional advanced settings.
I'll add this to the documentation soon too, so u don't have to dig through the code to understand what each variable does. Thx for pointing this out :)
About the connection errors, I checked both the frontend and Compose files, and yeah, there are hardcoded addresses in both.
Nginx always tries to reach typetype-server:8080, typetype-token:8081 and typetype-downloader:18093. Those names normally work on the shared Docker Compose network, but if your setup uses different names or separate networks, Nginx won't find them.
Several addresses in Compose are also set directly instead of reading from .env, so even though the services support configurable URLs, changing .env doesn't update those values.
For the variable u mentioned, YOUTUBE_REMOTE_LOGIN_CALLBACK_ORIGIN only tells Token which callback origin it is allowed to accept. Server builds the callback address using YOUTUBE_REMOTE_LOGIN_CALLBACK_BASE_URL. Those two need to agree, but neither changes the addresses Nginx uses.
So this needs a fix in both Nginx and Compose to make the service addresses configurable consistently. Until then, a custom setup needs the addresses changed directly in Compose and a matching Nginx configuration.
Could u share the relevant service names, networks and URL settings from your setup, with passwords and tokens removed? I'd like to understand how everything is connected before settling on the fix. Thx!
I fixed the hardcoded service URLs in #265 (024f485), and the fix is included in TypeType 1.8.1.
Could u update the stack files themselves to 1.8.1 and test again? Pulling the images alone does not replace an old local docker-compose.yml or nginx.conf, so an existing stack can still use the old addresses.
I’m closing this for now. If anything still looks wrong after the update, please let me know and I’ll reopen the issue to investigate further.
It looks good. There are still a lot of oddities (for example, renaming DOWNLOADER_S3_ACCESS_KEY to S3_ACCESS_KEY) but the hardcoded urls seem to all be working now.
Activity
Priveetee commentedon Sep 6, 2026
Here is what the configuration variables actually do. One important distinction: a variable supported by a service is not necessarily configurable through the root
.env. Compose must explicitly pass it through.Service addresses
DOWNLOADER_SERVICE_URLhttp://typetype-downloader:18093.SUBTITLE_SERVICE_URLYOUTUBE_REMOTE_LOGIN_SERVICE_URLhttp://typetype-token:8081.YOUTUBE_REMOTE_LOGIN_CALLBACK_BASE_URLhttp://typetype-server:8080.YOUTUBE_REMOTE_LOGIN_CALLBACK_ORIGIN.env.TYPETYPE_API_BASEhttp://typetype-server:8080.PUBLIC_BASE_URL/api/downloader.YOUTUBE_OUTBOUND_PROXY_URL.env.Nginx separately hardcodes all three service addresses. None of the callback settings changes those Nginx destinations.
Installation and access
TYPETYPE_WEB_IMAGETYPETYPE_SERVER_IMAGETYPETYPE_TOKEN_IMAGETYPETYPE_DOWNLOADER_IMAGETYPETYPE_*_BETA_IMAGEHOST_PORT_WEBHOST_PORT_SERVER,HOST_PORT_TOKEN,HOST_PORT_GARAGE_S3HOST_BIND_SERVER,HOST_BIND_TOKEN,HOST_BIND_GARAGE_S3HOST_PORT_*_BETA,HOST_BIND_*_BETAALLOWED_ORIGINSAUTH_SESSION_TTL_DAYSAUTH_ALLOW_INSECURE_COOKIESDatabase and storage
POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORDDATABASE_URL,DATABASE_USER,DATABASE_PASSWORDDB_URLpostgres://URL containing credentials.DB_USER,DB_PASSWORDpostgres://URL. Still passed by beta Compose.DRAGONFLY_URLREDIS_HOST,REDIS_PORTdragonfly:6379in Compose.REDIS_QUEUE_KEYSTORAGE_BACKENDs3in Compose.S3_ENDPOINT,S3_PUBLIC_ENDPOINThttp://garage:3900in Compose.S3_REGION,S3_BUCKETgarageandtypetype-downloads.DOWNLOADER_S3_ACCESS_KEY,DOWNLOADER_S3_SECRET_KEY.envcredentials passed to Downloader asS3_ACCESS_KEYandS3_SECRET_KEY.GARAGE_RPC_SECRETS3_ARTIFACT_TTL_SECONDS7200in Compose.Downloads
HTTP_PORT18093.MAX_CONCURRENT_WORKERS2.MAX_QUEUE_SIZE100.JOB_TTL_SECONDS600.DOWNLOAD_WORKERS8.DOWNLOAD_CHUNK_SIZE10485760(10 MiB).DOWNLOAD_RANGE_MODEquery.MUXERavformat.YouTube login and reporting
YOUTUBE_REMOTE_LOGIN_ENABLEDYOUTUBE_REMOTE_LOGIN_INTERNAL_TOKENYOUTUBE_SESSION_ENCRYPTION_KEYYOUTUBE_REMOTE_LOGIN_INTERNAL_TOKEN_FILE,YOUTUBE_SESSION_ENCRYPTION_KEY_FILEYOUTUBE_REMOTE_LOGIN_TTL_MSYOUTUBE_REMOTE_LOGIN_MAX_SESSIONSYOUTUBE_REMOTE_LOGIN_FRAME_FPSYOUTUBE_REMOTE_LOGIN_MAX_FRAME_BYTESGITHUB_REPOGITHUB_ISSUE_TEMPLATEbug_report_backend.mdis outdated; the repository now containsbug_report.yml.This covers the root
.env.exampleand the application settings explicitly passed by the two Compose files. Individual services also support additional advanced settings.I'll add this to the documentation soon too, so u don't have to dig through the code to understand what each variable does. Thx for pointing this out :)
Priveetee commentedon Sep 6, 2026
About the connection errors, I checked both the frontend and Compose files, and yeah, there are hardcoded addresses in both.
Nginx always tries to reach
typetype-server:8080,typetype-token:8081andtypetype-downloader:18093. Those names normally work on the shared Docker Compose network, but if your setup uses different names or separate networks, Nginx won't find them.Several addresses in Compose are also set directly instead of reading from
.env, so even though the services support configurable URLs, changing.envdoesn't update those values.For the variable u mentioned,
YOUTUBE_REMOTE_LOGIN_CALLBACK_ORIGINonly tells Token which callback origin it is allowed to accept. Server builds the callback address usingYOUTUBE_REMOTE_LOGIN_CALLBACK_BASE_URL. Those two need to agree, but neither changes the addresses Nginx uses.So this needs a fix in both Nginx and Compose to make the service addresses configurable consistently. Until then, a custom setup needs the addresses changed directly in Compose and a matching Nginx configuration.
Could u share the relevant service names, networks and URL settings from your setup, with passwords and tokens removed? I'd like to understand how everything is connected before settling on the fix. Thx!
Priveetee commentedon Sep 11, 2026
I fixed the hardcoded service URLs in #265 (
024f485), and the fix is included in TypeType1.8.1.Could u update the stack files themselves to
1.8.1and test again? Pulling the images alone does not replace an old localdocker-compose.ymlornginx.conf, so an existing stack can still use the old addresses.I’m closing this for now. If anything still looks wrong after the update, please let me know and I’ll reopen the issue to investigate further.
disconn3ct commentedon Sep 12, 2026
It looks good. There are still a lot of oddities (for example, renaming
DOWNLOADER_S3_ACCESS_KEYtoS3_ACCESS_KEY) but the hardcoded urls seem to all be working now.