Merge remote-tracking branch 'origin/main'

This commit is contained in:
Dessalines 2021-10-22 13:32:17 -04:00
commit f4bac6a17f
4 changed files with 127 additions and 114 deletions

View file

@ -6,5 +6,5 @@ cargo +nightly fmt -- --check
cargo +nightly clippy --workspace --tests --all-targets --all-features -- \ cargo +nightly clippy --workspace --tests --all-targets --all-features -- \
-D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro -D warnings -D deprecated -D clippy::perf -D clippy::complexity -D clippy::dbg_macro
cargo run -- --print-config-docs > config/defaults.hjson ./scripts/update_config_defaults.sh
git add config/defaults.hjson git add config/defaults.hjson

View file

@ -38,18 +38,18 @@ steps:
- sudo apt-get -y install --no-install-recommends postgresql-client - sudo apt-get -y install --no-install-recommends postgresql-client
- cargo test --workspace --no-fail-fast - cargo test --workspace --no-fail-fast
- name: check defaults.hjson updated
image: ekidd/rust-musl-builder:1.51.0
commands:
- ./scripts/update_config_defaults.sh config/defaults_current.hjson
- diff config/defaults.hjson config/defaults_current.hjson
- name: cargo build - name: cargo build
image: ekidd/rust-musl-builder:1.51.0 image: ekidd/rust-musl-builder:1.51.0
commands: commands:
- cargo build - cargo build
- mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server - mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
- name: check defaults.hjson updated
image: ekidd/rust-musl-builder:1.51.0
commands:
- target/lemmy_server --print-config-docs > config/defaults_current.hjson
- diff config/defaults.hjson config/defaults_current.hjson
- name: run federation tests - name: run federation tests
image: node:alpine image: node:alpine
environment: environment:

View file

@ -1,111 +1,111 @@
{ {
// settings related to the postgresql database # settings related to the postgresql database
"database": { database: {
// Username to connect to postgres # Username to connect to postgres
"user": "lemmy", user: "lemmy"
// Password to connect to postgres # Password to connect to postgres
"password": "password", password: "password"
// Host where postgres is running # Host where postgres is running
"host": "localhost", host: "localhost"
// Port where postgres can be accessed # Port where postgres can be accessed
"port": 5432, port: 5432
// Name of the postgres database for lemmy # Name of the postgres database for lemmy
"database": "lemmy", database: "lemmy"
// Maximum number of active sql connections # Maximum number of active sql connections
"pool_size": 5 pool_size: 5
}, }
// rate limits for various user actions, by user ip # rate limits for various user actions, by user ip
"rate_limit": { rate_limit: {
// Maximum number of messages created in interval # Maximum number of messages created in interval
"message": 180, message: 180
// Interval length for message limit, in seconds # Interval length for message limit, in seconds
"message_per_second": 60, message_per_second: 60
// Maximum number of posts created in interval # Maximum number of posts created in interval
"post": 6, post: 6
// Interval length for post limit, in seconds # Interval length for post limit, in seconds
"post_per_second": 600, post_per_second: 600
// Maximum number of registrations in interval # Maximum number of registrations in interval
"register": 3, register: 3
// Interval length for registration limit, in seconds # Interval length for registration limit, in seconds
"register_per_second": 3600, register_per_second: 3600
// Maximum number of image uploads in interval # Maximum number of image uploads in interval
"image": 6, image: 6
// Interval length for image uploads, in seconds # Interval length for image uploads, in seconds
"image_per_second": 3600 image_per_second: 3600
}, }
// Settings related to activitypub federation # Settings related to activitypub federation
"federation": { federation: {
// Whether to enable activitypub federation. # Whether to enable activitypub federation.
"enabled": false, enabled: false
// Allows and blocks are described here: # Allows and blocks are described here:
// https://join-lemmy.org/docs/en/federation/administration.html///instance-allowlist-and-blocklist # https://join-lemmy.org/docs/en/federation/administration.html///instance-allowlist-and-blocklist
// #
// list of instances with which federation is allowed # list of instances with which federation is allowed
"allowed_instances": [ allowed_instances: [
"instance1.tld", instance1.tld
"instance2.tld", instance2.tld
/* ... */ /* ... */
], ]
// Instances which we never federate anything with (but previously federated objects are unaffected) # Instances which we never federate anything with (but previously federated objects are unaffected)
"blocked_instances": [ blocked_instances: [
"string", string
/* ... */ /* ... */
], ]
// If true, only federate with instances on the allowlist and block everything else. If false, # If true, only federate with instances on the allowlist and block everything else. If false
// use allowlist only for remote communities, and posts/comments in local communities # use allowlist only for remote communities, and posts/comments in local communities
// (meaning remote communities will show content from arbitrary instances). # (meaning remote communities will show content from arbitrary instances).
"strict_allowlist": true strict_allowlist: true
}, }
"captcha": { captcha: {
// Whether captcha is required for signup # Whether captcha is required for signup
"enabled": false, enabled: false
// Can be easy, medium, or hard # Can be easy, medium, or hard
"difficulty": "medium" difficulty: "medium"
}, }
// Email sending configuration. All options except login/password are mandatory # Email sending configuration. All options except login/password are mandatory
"email": { email: {
// Hostname and port of the smtp server # Hostname and port of the smtp server
"smtp_server": "localhost:25", smtp_server: "localhost:25"
// Login name for smtp server # Login name for smtp server
"smtp_login": "string", smtp_login: "string"
// Password to login to the smtp server # Password to login to the smtp server
"smtp_password": "string", smtp_password: "string"
// Address to send emails from, eg "noreply@your-instance.com" # Address to send emails from, eg noreply@your-instance.com
"smtp_from_address": "noreply@example.com", smtp_from_address: "noreply@example.com"
// Whether or not smtp connections should use tls # Whether or not smtp connections should use tls
"use_tls": true use_tls: true
}, }
// Parameters for automatic configuration of new instance (only used at first start) # Parameters for automatic configuration of new instance (only used at first start)
"setup": { setup: {
// Username for the admin user # Username for the admin user
"admin_username": "admin", admin_username: "admin"
// Password for the admin user # Password for the admin user
"admin_password": "my_passwd", admin_password: "my_passwd"
// Name of the site (can be changed later) # Name of the site (can be changed later)
"site_name": "My Lemmy Instance", site_name: "My Lemmy Instance"
// Email for the admin user (optional, can be omitted and set later through the website) # Email for the admin user (optional, can be omitted and set later through the website)
"admin_email": "string", admin_email: "string"
"sidebar": "string", sidebar: "string"
"description": "string", description: "string"
"icon": "string", icon: "string"
"banner": "string", banner: "string"
"enable_downvotes": true, enable_downvotes: true
"open_registration": true, open_registration: true
"enable_nsfw": true, enable_nsfw: true
"community_creation_admin_only": true community_creation_admin_only: true
}, }
// the domain name of your instance (mandatory) # the domain name of your instance (mandatory)
"hostname": "unset", hostname: "unset"
// Address where lemmy should listen for incoming requests # Address where lemmy should listen for incoming requests
"bind": "0.0.0.0", bind: "0.0.0.0"
// Port where lemmy should listen for incoming requests # Port where lemmy should listen for incoming requests
"port": 8536, port: 8536
// Whether the site is available over TLS. Needs to be true for federation to work. # Whether the site is available over TLS. Needs to be true for federation to work.
"tls_enabled": true, tls_enabled: true
// Address where pictrs is available (for image hosting) # Address where pictrs is available (for image hosting)
"pictrs_url": "http://localhost:8080", pictrs_url: "http:#localhost:8080"
// Regex for slurs which are prohibited. Example: `(\bThis\b)|(\bis\b)|(\bsample\b)` # Regex for slurs which are prohibited. Example: `(\bThis\b)|(\bis\b)|(\bsample\b)`
"additional_slurs": "string", additional_slurs: "string"
// Maximum length of local community and user names # Maximum length of local community and user names
"actor_name_max_length": 20 actor_name_max_length: 20
} }

View file

@ -0,0 +1,13 @@
#!/bin/bash
set -e
dest=${1-config/defaults.hjson}
cargo run -- --print-config-docs > "$dest"
# replace // comments with #
sed -i "s/\/\//#/" "$dest"
# remove trailing commas
sed -i "s/,\$//" "$dest"
# remove quotes around json keys
sed -i "s/\"//" "$dest"
sed -i "s/\"//" "$dest"