Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Format config/defaults.hjson before committing #1860

Merged
merged 1 commit into from
Oct 22, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cargo-husky/hooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ cargo +nightly fmt -- --check
cargo +nightly clippy --workspace --tests --all-targets --all-features -- \
-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
12 changes: 6 additions & 6 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,17 @@ steps:
- sudo apt-get -y install --no-install-recommends postgresql-client
- cargo test --workspace --no-fail-fast

- name: cargo build
- name: check defaults.hjson updated
image: ekidd/rust-musl-builder:1.51.0
commands:
- cargo build
- mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server
- ./scripts/update_config_defaults.sh config/defaults_current.hjson
- diff config/defaults.hjson config/defaults_current.hjson

- name: check defaults.hjson updated
- name: cargo build
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
- cargo build
- mv target/x86_64-unknown-linux-musl/debug/lemmy_server target/lemmy_server

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side note, but its worth asking for hjson support in doku, so we don't have to do this step at all. Open up an issue asking them.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be the three issues linked here by the maintainer. Ive subscribed to them to get notified when they get implemented.