From 0d41e71ec420cb5b57c7d81c21a1c506b25b5e1c Mon Sep 17 00:00:00 2001 From: dakkar Date: Mon, 28 Apr 2025 19:32:52 +0100 Subject: [PATCH] align `docker_example.yml` with `example.yml` bits I've left different: * hostname for db, redis, meili (so they match the values in the example compose file) * listen address / socket (because changing them will confuse docker) * no mention of the pidfile (because it's completely useless in docker) --- .config/docker_example.yml | 81 ++++++++++++++++++++++++++++++++------ .config/example.yml | 2 +- 2 files changed, 71 insertions(+), 12 deletions(-) diff --git a/.config/docker_example.yml b/.config/docker_example.yml index f9666307de..45cc157533 100644 --- a/.config/docker_example.yml +++ b/.config/docker_example.yml @@ -59,6 +59,20 @@ # # publishTarballInsteadOfProvideRepositoryUrl: true +# ┌────────────────────────┐ +#───┘ Initial Setup Password └───────────────────────────────────────────────────── + +# Password to initiate setting up admin account. +# It will not be used after the initial setup is complete. +# +# Be sure to change this when you set up Sharkey via the Internet. +# +# The provider of the service who sets up Sharkey on behalf of the customer should +# set this value to something unique when generating the Sharkey config file, +# and provide it to the customer. +# +# setupPassword: example_password_please_change_this_or_you_will_get_hacked + # ┌─────┐ #───┘ URL └───────────────────────────────────────────────────── @@ -138,6 +152,8 @@ redis: #pass: example-pass #prefix: example-prefix #db: 1 + # You can specify more ioredis options... + #username: example-username #redisForPubsub: # host: redis @@ -146,6 +162,8 @@ redis: # #pass: example-pass # #prefix: example-prefix # #db: 1 +# # You can specify more ioredis options... +# #username: example-username #redisForJobQueue: # host: redis @@ -154,6 +172,8 @@ redis: # #pass: example-pass # #prefix: example-prefix # #db: 1 +# # You can specify more ioredis options... +# #username: example-username #redisForTimelines: # host: redis @@ -162,6 +182,8 @@ redis: # #pass: example-pass # #prefix: example-prefix # #db: 1 +# # You can specify more ioredis options... +# #username: example-username #redisForReactions: # host: redis @@ -170,6 +192,8 @@ redis: # #pass: example-pass # #prefix: example-prefix # #db: 1 +# # You can specify more ioredis options... +# #username: example-username #redisForRateLimit: # host: localhost @@ -195,6 +219,19 @@ fulltextSearch: # You need to install pgroonga and configure it as a PostgreSQL extension. # In addition to the above, you need to create a pgroonga index on the text column of the note table. # see: https://pgroonga.github.io/tutorial/ + # - sqlTsvector + # Use Postgres tsvectors. + # You need to create a generated column and index on the note table to use this, followed by an ANALYZE on the table. Beware, this will take a while to be created and the database will remain locked during this process. + # This also enables advanced search syntax, see documentation of websearch_to_tsquery: https://www.postgresql.org/docs/current/textsearch-controls.html#TEXTSEARCH-PARSING-QUERIES + # Support for multiple languages is currently rather poor and will be improved once post languages become a feature. + # + # Example to set up tsvectors for an English instance: + # ALTER TABLE note ADD COLUMN tsvector_embedding tsvector GENERATED ALWAYS AS ( to_tsvector('english', COALESCE(text, '') || ' ' || COALESCE(cw, '') || ' ' || COALESCE(name, ''))) STORED; + # CREATE INDEX vector_idx ON note USING GIN (tsvector_embedding); + # ANALYZE note; + # + # Note: You can opt to use a different dictionary for better results if your main instance language is not English. + # To get a list, use "SELECT cfgname FROM pg_ts_config;" and replace 'english' with the desired dictionary name. # - meilisearch # Use Meilisearch. # You need to install Meilisearch and configure. @@ -262,20 +299,20 @@ id: 'aidx' #clusterLimit: 1 # Job concurrency per worker -# deliverJobConcurrency: 128 -# inboxJobConcurrency: 16 -# relationshipJobConcurrency: 16 -# What's relationshipJob?: -# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations. +#deliverJobConcurrency: 128 +#inboxJobConcurrency: 16 +#relationshipJobConcurrency: 16 +# What's relationshipJob?: +# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations. # Job rate limiter -# deliverJobPerSec: 128 -# inboxJobPerSec: 32 -# relationshipJobPerSec: 64 +#deliverJobPerSec: 128 +#inboxJobPerSec: 32 +#relationshipJobPerSec: 64 # Job attempts -# deliverJobMaxAttempts: 12 -# inboxJobMaxAttempts: 8 +#deliverJobMaxAttempts: 12 +#inboxJobMaxAttempts: 8 # Local address used for outgoing requests #outgoingAddress: 127.0.0.1 @@ -312,6 +349,9 @@ proxyBypassHosts: #proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5 # Media Proxy +# Reference Implementation: https://github.com/misskey-dev/media-proxy +# * Deliver a common cache between instances +# * Perform image compression (on a different server resource than the main process) #mediaProxy: https://example.com/proxy # Proxy remote files (default: true) @@ -320,7 +360,7 @@ proxyRemoteFiles: true # Movie Thumbnail Generation URL # There is no reference implementation. -# For example, Misskey will point to the following URL: +# For example, Sharkey will point to the following URL: # https://example.com/thumbnail.webp?thumbnail=1&url=https%3A%2F%2Fstorage.example.com%2Fpath%2Fto%2Fvideo.mp4 #videoThumbnailGenerator: https://example.com @@ -349,6 +389,11 @@ attachLdSignatureForRelays: true # Upload or download file size limits (bytes) #maxFileSize: 262144000 +# timeout (in milliseconds) and maximum size for imports (e.g. note imports) +#import: +# downloadTimeout: 30000 +# maxFileSize: 262144000 + # CHMod-style permission bits to apply to uploaded files. # Permission bits are specified as a base-8 string representing User/Group/Other permissions. # This setting is only useful for custom deployments, such as using a reverse proxy to serve media. @@ -378,3 +423,17 @@ attachLdSignatureForRelays: true # How long to save each log entry before deleting it. # Default: 2592000000 (1 week) #maxAge: 2592000000 + +# Transparently compress every websocket message on clients that support it. +# Trades server CPU usage for reduced bandwidth usage and a faster frontend on the client. +# If you're not using jemalloc, this may cause memory fragmentation and performance issues! (https://www.npmjs.com/package/ws#websocket-compression) +# jemalloc is used by default in the Sharkey Docker image and may be set up manually otherwise: https://github.com/jemalloc/jemalloc/wiki/getting-started +websocketCompression: false + +# Inject arbitrary HTML tags to customize Sharkey without having to fork it +#customHtml: +# head: | +# +# +# +# diff --git a/.config/example.yml b/.config/example.yml index d52d145d1e..c484e48e5d 100644 --- a/.config/example.yml +++ b/.config/example.yml @@ -45,7 +45,7 @@ # option will automatically generate and publish a # tarball at build time, protecting you from # inadvertent license violations. (There is no legal -# guarantee, of course.) The tarball will generated +# guarantee, of course.) The tarball will be generated # from the root directory of your codebase. So it is # also recommended to check directory # once after building and before activating the server