[feature] Set timezone in Docker using TZ env variable (#2050)

This commit is contained in:
tobi 2023-08-01 14:47:53 +02:00 committed by GitHub
parent 70929c1691
commit 9bd03e122e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 1 deletions

View file

@ -24,6 +24,8 @@ builds:
- netgo - netgo
- osusergo - osusergo
- static_build - static_build
- kvformat
- timetzdata
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
goos: goos:

View file

@ -51,6 +51,17 @@ If desired, update the GoToSocial Docker image tag to the version of GtS you wan
Change the `GTS_HOST` environment variable to the domain you are running GoToSocial on. Change the `GTS_HOST` environment variable to the domain you are running GoToSocial on.
### Server Timezone (optional but recommended)
To ensure that your GoToSocial server displays the correct time on posts and in logs, you can set the timezone of the server by editing the `TZ` environment variable.
1. Remove the `#` before `TZ: UTC` in the environment section.
2. Change the `UTC` part to your timezone identifier. For a list of these identifiers, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
For example, if you are running your server in Minsk, you would set `TZ: Europe/Minsk`, Japan would be `TZ: Japan`, Dubai would be `TZ: Asia/Dubai`, etc.
If you don't set this, the default `UTC` will be used.
### User (optional / probably not necessary) ### User (optional / probably not necessary)
By default, Dockerized GoToSocial runs with Linux user/group `1000:1000`, which is fine in most cases. If you want to run as a different user/group, you should change the `user` field in the docker-compose.yaml accordingly. By default, Dockerized GoToSocial runs with Linux user/group `1000:1000`, which is fine in most cases. If you want to run as a different user/group, you should change the `user` field in the docker-compose.yaml accordingly.

View file

@ -15,6 +15,8 @@ services:
GTS_LETSENCRYPT_EMAIL_ADDRESS: "" GTS_LETSENCRYPT_EMAIL_ADDRESS: ""
## For reverse proxy setups: ## For reverse proxy setups:
# GTS_TRUSTED_PROXIES: "172.x.x.x" # GTS_TRUSTED_PROXIES: "172.x.x.x"
## Set the timezone of your server:
#TZ: UTC
ports: ports:
- "443:8080" - "443:8080"
## For letsencrypt: ## For letsencrypt:

View file

@ -6,7 +6,7 @@ set -e
log_exec() { echo "$ ${*}"; "$@"; } log_exec() { echo "$ ${*}"; "$@"; }
# Grab environment variables and set defaults + requirements. # Grab environment variables and set defaults + requirements.
GO_BUILDTAGS="${GO_BUILDTAGS-} netgo osusergo static_build kvformat" GO_BUILDTAGS="${GO_BUILDTAGS-} netgo osusergo static_build kvformat timetzdata"
GO_LDFLAGS="${GO_LDFLAGS-} -s -w -extldflags '-static' -X 'main.Version=${VERSION:-$(git describe --tags --abbrev=0)}'" GO_LDFLAGS="${GO_LDFLAGS-} -s -w -extldflags '-static' -X 'main.Version=${VERSION:-$(git describe --tags --abbrev=0)}'"
GO_GCFLAGS=${GO_GCFLAGS-} GO_GCFLAGS=${GO_GCFLAGS-}
@ -16,6 +16,7 @@ GO_GCFLAGS=${GO_GCFLAGS-}
# Available Go build tags, with explanation, followed by benefits of enabling it: # Available Go build tags, with explanation, followed by benefits of enabling it:
# - kvformat: enables prettier output of log fields (slightly better performance) # - kvformat: enables prettier output of log fields (slightly better performance)
# - timetzdata: embed timezone database inside binary (allow setting local time inside Docker containers, at cost of 450KB)
# - notracing: disables compiling-in otel tracing support (reduced binary size, better performance) # - notracing: disables compiling-in otel tracing support (reduced binary size, better performance)
# - noerrcaller: disables caller function prefix in errors (slightly better performance, at cost of err readability) # - noerrcaller: disables caller function prefix in errors (slightly better performance, at cost of err readability)
# - debug: enables /debug/pprof endpoint (adds debug, at performance cost) # - debug: enables /debug/pprof endpoint (adds debug, at performance cost)