Create a custom pre-commit hook, generates config/defaults.hjson (#1857)
* Create a custom pre-commit hook, generates config/defaults.hjson (fixes #1836) * invalid defaults file * Revert "invalid defaults file" This reverts commit 76d2c303e293b13d581f9c5aa2944caedb2f530b.
This commit is contained in:
parent
9e0fa99c69
commit
21304e6751
4 changed files with 128 additions and 1 deletions
10
.cargo-husky/hooks/pre-commit
Executable file
10
.cargo-husky/hooks/pre-commit
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
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
|
||||
git add config/defaults.hjson
|
|
@ -44,6 +44,12 @@ steps:
|
|||
- cargo build
|
||||
- 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
|
||||
image: node:alpine
|
||||
environment:
|
||||
|
|
|
@ -67,7 +67,7 @@ doku = "0.10.1"
|
|||
[dev-dependencies.cargo-husky]
|
||||
version = "1.5.0"
|
||||
default-features = false # Disable features which are enabled by default
|
||||
features = ["precommit-hook", "run-cargo-fmt", "run-cargo-clippy"]
|
||||
features = ["user-hooks"]
|
||||
|
||||
[package.metadata.cargo-udeps.ignore]
|
||||
development = ["cargo-husky"]
|
||||
|
|
111
config/defaults.hjson
Normal file
111
config/defaults.hjson
Normal file
|
@ -0,0 +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",
|
||||
/* ... */
|
||||
],
|
||||
// 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 "noreply@your-instance.com"
|
||||
"smtp_from_address": "noreply@example.com",
|
||||
// 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
|
||||
}
|
Loading…
Reference in a new issue