# rather than editing this file, it is strongly suggested to create config.yaml
# and override only what you need.

# shown in the website title and on the front page
name: szurubooru
# full url to the homepage of this szurubooru site, with no trailing slash
domain: localhost # example: http://example.com
# used to salt the users' password hashes and generate filenames for static content
secret: change

# Delete thumbnails and source files on post delete
# Original functionality is no, to mitigate the impacts of admins going
# on unchecked post purges.
delete_source_files: no

thumbnails:
    avatar_width: 300
    avatar_height: 300
    post_width: 300
    post_height: 300

# settings used to download files from the web on behalf of the api users
user_agent:
max_dl_filesize: 25.0E+6 # maximum filesize limit in bytes

# automatically convert animated GIF uploads to video formats
convert:
   gif:
     to_webm: false
     to_mp4: false

# allow posts to be uploaded even if some image processing errors occur
allow_broken_uploads: false

# used to send password reset e-mails
smtp:
    host: # example: localhost
    port: # example: 25
    user: # example: bot
    pass: # example: groovy123
    from: # example: noreply@example.com
    # if host is left empty the password reset feature will be disabled, in which case it is
    # recommended to fill contactEmail so that users know who to contact when they want to reset their password

contact_email: # example: bob@example.com. Meant for manual password reset procedures

enable_safety: yes

tag_name_regex: ^\S+$
tag_category_name_regex: ^[^\s%+#/]+$

pool_name_regex: ^\S+$
pool_category_name_regex: ^[^\s%+#/]+$

# don't make these more restrictive unless you want to annoy people; if you do
# customize them, make sure to update the instructions in the registration form
# template as well.
password_regex: '^.{5,}$'
user_name_regex: '^[a-zA-Z0-9_-]{1,32}$'

default_rank: regular

privileges:
    'users:create:self':             anonymous # Registration permission
    'users:create:any':              administrator
    'users:list':                    regular
    'users:view':                    regular
    'users:edit:any:name':           moderator
    'users:edit:any:pass':           moderator
    'users:edit:any:email':          moderator
    'users:edit:any:avatar':         moderator
    'users:edit:any:rank':           moderator
    'users:edit:self:name':          regular
    'users:edit:self:pass':          regular
    'users:edit:self:email':         regular
    'users:edit:self:avatar':        regular
    'users:edit:self:rank':          moderator # one can't promote themselves or anyone to upper rank than their own.
    'users:delete:any':              administrator
    'users:delete:self':             regular

    'user_tokens:list:any':          administrator
    'user_tokens:list:self':         regular
    'user_tokens:create:any':        administrator
    'user_tokens:create:self':       regular
    'user_tokens:edit:any':          administrator
    'user_tokens:edit:self':         regular
    'user_tokens:delete:any':        administrator
    'user_tokens:delete:self':       regular

    'posts:create:anonymous':        regular
    'posts:create:identified':       regular
    'posts:list':                    anonymous
    'posts:reverse_search':          regular
    'posts:view':                    anonymous
    'posts:view:featured':           anonymous
    'posts:edit:content':            power
    'posts:edit:flags':              regular
    'posts:edit:notes':              regular
    'posts:edit:relations':          regular
    'posts:edit:safety':             power
    'posts:edit:source':             regular
    'posts:edit:tags':               regular
    'posts:edit:thumbnail':          power
    'posts:feature':                 moderator
    'posts:delete':                  moderator
    'posts:score':                   regular
    'posts:merge':                   moderator
    'posts:favorite':                regular
    'posts:bulk-edit:tags':          power
    'posts:bulk-edit:safety':        power

    'tags:create':                   regular
    'tags:edit:names':               power
    'tags:edit:category':            power
    'tags:edit:description':         power
    'tags:edit:implications':        power
    'tags:edit:suggestions':         power
    'tags:list':                     regular
    'tags:view':                     anonymous
    'tags:merge':                    moderator
    'tags:delete':                   moderator

    'tag_categories:create':         moderator
    'tag_categories:edit:name':      moderator
    'tag_categories:edit:color':     moderator
    'tag_categories:list':           anonymous
    'tag_categories:view':           anonymous
    'tag_categories:delete':         moderator
    'tag_categories:set_default':    moderator

    'pools:create':                  regular
    'pools:edit:names':              power
    'pools:edit:category':           power
    'pools:edit:description':        power
    'pools:edit:posts':              power
    'pools:list':                    regular
    'pools:view':                    anonymous
    'pools:merge':                   moderator
    'pools:delete':                  moderator

    'pool_categories:create':        moderator
    'pool_categories:edit:name':     moderator
    'pool_categories:edit:color':    moderator
    'pool_categories:list':          anonymous
    'pool_categories:view':          anonymous
    'pool_categories:delete':        moderator
    'pool_categories:set_default':   moderator

    'comments:create':               regular
    'comments:delete:any':           moderator
    'comments:delete:own':           regular
    'comments:edit:any':             moderator
    'comments:edit:own':             regular
    'comments:list':                 regular
    'comments:view':                 regular
    'comments:score':                regular

    'snapshots:list':                power

    'uploads:create':                regular
    'uploads:use_downloader':        power

## ONLY SET THESE IF DEPLOYING OUTSIDE OF DOCKER
#debug: 0 # generate server logs?
#show_sql: 0 # show sql in server logs?
#data_url: /data/
#data_dir: /var/www/data
## usage: schema://user:password@host:port/database_name
## example: postgres://szuru:dog@localhost:5432/szuru_test
#database: