Migrate configuration to TOML

YAML is just too easy to get wrong

closes #8132
This commit is contained in:
Jonne Haß 2020-07-10 13:40:42 +02:00
parent 9dff9642b6
commit 08395cc877
15 changed files with 708 additions and 748 deletions

1
.gitignore vendored
View file

@ -9,6 +9,7 @@ app/views/terms/terms.*
app/assets/images/custom/
# Configuration files
config/diaspora.toml
config/diaspora.yml
config/initializers/secret_token.rb
.bundle

View file

@ -5,6 +5,7 @@
## Bug fixes
## Features
* Support and recommend TOML as configuration format [#8132](https://github.com/diaspora/diaspora/pull/8132)
# 0.7.14.0

View file

@ -50,7 +50,8 @@ gem "uglifier", "4.2.0"
# Configuration
gem "configurate", "0.3.1"
gem "configurate", "0.4.0"
gem "tomlrb", "1.3.0"
# Cross-origin resource sharing

View file

@ -132,7 +132,7 @@ GEM
sass-rails (< 5.1)
sprockets (< 4.0)
concurrent-ruby (1.1.6)
configurate (0.3.1)
configurate (0.4.0)
connection_pool (2.2.2)
coveralls (0.8.23)
json (>= 1.8, < 3)
@ -733,6 +733,7 @@ GEM
tins (1.24.1)
sync
to_regexp (0.2.1)
tomlrb (1.3.0)
turbo_dev_assets (0.0.2)
twitter (7.0.0)
addressable (~> 2.3)
@ -809,7 +810,7 @@ DEPENDENCIES
capybara (= 3.15.0)
carrierwave (= 1.3.1)
compass-rails (= 3.1.0)
configurate (= 0.3.1)
configurate (= 0.4.0)
coveralls (= 0.8.23)
cucumber-api-steps (= 0.14)
cucumber-rails (= 2.0.0)
@ -928,6 +929,7 @@ DEPENDENCIES
sprockets-rails (= 3.2.1)
string-direction (= 1.2.2)
timecop (= 0.9.1)
tomlrb (= 1.3.0)
turbo_dev_assets (= 0.0.2)
twitter (= 7.0.0)
twitter-text (= 1.14.7)

View file

@ -1,7 +1,7 @@
(function() {
app.helpers.locations = {
getTiles: function() {
// If the mapbox option is enabled in the diaspora.yml, the mapbox tiles with the podmin's credentials are used.
// If the mapbox option is enabled in the diaspora.toml, the mapbox tiles with the podmin's credentials are used.
if (gon.appConfig.map.mapbox.enabled) {
return L.tileLayer("https://api.mapbox.com/styles/v1/{style}/tiles/256/{z}/{x}/{y}?access_token={accessToken}", {
accessToken: gon.appConfig.map.mapbox.access_token,

View file

@ -15,7 +15,7 @@
= t(".configure_your_pod")
!= t(".configuration_info",
database_path: content_tag(:code, "config/database.yml"),
diaspora_path: content_tag(:code, "config/diaspora.yml"))
diaspora_path: content_tag(:code, "config/diaspora.toml"))
.col-md-4
.landing-info-card

View file

@ -5,22 +5,31 @@ require "yaml"
module BundlerHelper
def self.rails_env
@rails_env ||= ENV["RAILS_ENV"] ||
parse_value_from_file("diaspora.yml", "configuration", "server", "rails_environment") ||
parse_value_from_file("defaults.yml", "defaults", "server", "rails_environment")
parse_value_from_toml_file("diaspora.toml", "rails_environment") ||
parse_value_from_yaml_file("diaspora.yml", "configuration", "server", "rails_environment") ||
parse_value_from_yaml_file("defaults.yml", "defaults", "server", "rails_environment")
end
def self.database
@adapter ||= parse_value_from_file("database.yml", rails_env, "adapter")
@adapter ||= parse_value_from_yaml_file("database.yml", rails_env, "adapter")
raise "No database adapter found, please fix your config/database.yml!" unless @adapter
abort "No database adapter found, please fix your config/database.yml!" unless @adapter
@adapter.sub("mysql2", "mysql")
end
private_class_method def self.parse_value_from_file(file, *keys)
private_class_method def self.parse_value_from_yaml_file(file, *keys)
path = File.join(__dir__, file)
return YAML.load_file(path).dig(*keys) if File.file?(path)
YAML.load_file(path).dig(*keys) if File.file?(path)
end
puts "Configuration file #{path} not found, ensure it's present" # rubocop:disable Rails/Output
private_class_method def self.parse_value_from_toml_file(file, key)
path = File.join(__dir__, file)
if File.file?(path)
File.read(path)[/^\s*#{Regexp.escape(key)}\s*=\s*["']([^"']+)["']\s*$/, 1]
elsif !File.file? File.join(__dir__, "diaspora.yml")
warn "WARNING: Configuration file #{path} not found, ensure it's present" # rubocop:disable Rails/Output
end
end
end

View file

@ -0,0 +1,636 @@
## Some notes about this file:
## - All comments start with a double #
## - All settings are commented out with a single #
## To change the default settings, you need both to uncomment the lines
## AND, in most cases, to change the value that is given.
## - Take care to keep proper quoting. All " must have a matching " at
## the end of the same line. The same goes for '
## - The values true, false and numbers should have no quote marks.
## Everything else should.
##
## You can set and/or override all these settings through environment variables
## with the following conversion rules:
## - Strip the top level namespace (configuration, production, etc.)
## - Build the path to the setting, for example environment.s3.enable
## - Replace the dots with underscores: environment_s3_enable
## - Convert to upper case: ENVIRONMENT_S3_ENABLE
## - Specify lists/arrays as comma-separated values
##
## - For example, on Heroku:
## heroku config:set SERVICES_TWITTER_KEY=yourkey SERVICES_TWITTER_SECRET=yoursecret
## You need to change or at least review the settings in this section
## in order for your pod to work.
[configuration.environment]
## Set the hostname of the machine you're running Diaspora on, as seen
## from the internet. This should be the URL you want to use to
## access the pod. So if you plan to use a reverse proxy, it should be
## the URL the proxy listens on. DO NOT CHANGE THIS AFTER INITIAL SETUP!
## However changing http to https is okay and has no consequences.
## If you do change the URL, you will have to start again as the URL
## will be hardcoded into the database.
#url = "https://example.org/"
## Set the bundle of certificate authorities (CA) certificates.
## This is specific to your operating system.
## Examples (uncomment the relevant one or add your own):
## For Debian, Ubuntu, Archlinux, Gentoo (package ca-certificates):
#certificate_authorities = "/etc/ssl/certs/ca-certificates.crt"
## For CentOS, Fedora:
#certificate_authorities = "/etc/pki/tls/certs/ca-bundle.crt"
## URL for a remote Redis (default="localhost").
## Don't forget to restrict IP access if you uncomment these!
#redis = "redis://example_host"
#redis = "redis://username:password@host:6379/0"
#redis = "unix:///tmp/redis.sock"
## Require SSL (default=true).
## When set, your pod will force the use of HTTPS in production mode.
## Since OAuth2 requires SSL, Diaspora's future API might not work if
## you're not using SSL. Also there is no guarantee that posting to
## services will be possible if SSL is disabled.
## Do not change this default unless you are sure!
#require_ssl = true
## Single-process mode (default=false).
## If set to true, Diaspora will work with just the appserver (Unicorn by
## default) running. However, this makes it quite slow as intensive jobs
## must be run all the time inside the request cycle. We strongly
## recommended you leave this disabled for production setups.
## Set to true to enable.
#single_process_mode = false
## Set redirect URL for an external image host (Amazon S3 or other).
## If hosting images for your pod on an external server (even your own),
## add its URL here. All requests made to images under /uploads/images
## will be redirected to https://images.example.org/uploads/images/
#image_redirect_url = "https://images.example.org"
## Pubsub server (default="https://pubsubhubbub.appspot.com/"").
## Diaspora is only tested against the default pubsub server.
## You probably don't want to uncomment or change this.
#pubsub_server = "https://pubsubhubbub.appspot.com/"
## Sidekiq - background processing
[configuration.environment.sidekiq]
## Number of parallel threads Sidekiq uses (default=5).
## If you touch this, please set the pool setting in your database.yml
## to a value that's at minimum close to this! You can safely increase
## it to 25 and more on a medium-sized pod. This applies per started
## Sidekiq worker, so if you set it to 25 and start two workers, you'll
## process up to 50 jobs in parallel.
#concurrency = 5
## Number of times a job is retried (default=10).
## There's an exponential effect to this: if you set this too high you
## might get too many jobs building up in the queue.
## Set it to 0 to disable it completely.
#retry = 10
## Lines of backtrace that are stored on failure (default=15).
## Set n to the required value. Set this to false to reduce Redis memory
## usage (and log size) if you're not interested in this data.
#backtrace = 15
## Number of jobs to keep in the dead queue (default=5000).
## Jobs get into the dead queue after they failed and exhausted all retries.
## Increasing this setting will increase the memory usage of Redis.
## Once gone from the dead queue, a failed job is permanently lost and
## cannot be retried manually.
#dead_jobs_limit = 1000
## Number of seconds a job remains in the dead queue (default=3628800 (six weeks)).
## Jobs get into the dead queue after they failed and exhausted all retries.
## Increasing this setting will increase the memory usage of Redis.
## Once gone from the dead queue, a failed job is permanently lost and
## cannot be retried manually.
#dead_jobs_timeout = 15552000 # 6 months
## Log file for Sidekiq (default="log/sidekiq.log")
#log = "log/sidekiq.log"
## Use Amazon S3 instead of your local filesystem
## to handle uploaded pictures (disabled by default).
[configuration.environment.s3]
#enable = true
#key = "change_me"
#secret = "change_me"
#bucket = "my_photos"
#region = "us-east-1"
## Use max-age header on Amazon S3 resources (default=true).
## When true, this allows locally cached images to be served for up to
## one year. This can improve load speed and save requests to the image
## host. Set to false to revert to browser defaults (usually less than
## one year).
#cache = true
[configuration.environment.assets]
## Serve static assets via the appserver (default=false).
## This is highly discouraged for production use. Let your reverse
## proxy/webserver do it by serving the files under public/ directly.
#serve = false
## Upload your assets to S3 (default=false).
#upload = false
## Specify an asset host. Ensure it does not have a trailing slash (/).
#host = "http://cdn.example.org/diaspora"
## Logger configuration
[configuration.environment.logging]
## Roll the application log on a daily basis (default=true).
#logrotate.enable = true
## The number of days to keep (default=7)
#logrotate.days = 7
## Enables the debug-logging for SQL (default=false)
## This logs every SQL-statement!
#debug.sql = true
## Enables the federation-debug-log (default=false)
## This logs all XMLs that are used for the federation
#debug.federation = true
## Settings affecting how ./script/server behaves.
[configuration.server]
## Where the appserver should listen to (default="unix:tmp/diaspora.sock")
#listen = "unix:tmp/diaspora.sock"
#listen = "unix:/run/diaspora/diaspora.sock"
#listen = "127.0.0.1:3000"
## Set the path for the PID file of the unicorn master process (default=tmp/pids/web.pid)
#pid = "tmp/pids/web.pid"
## Rails environment (default="development").
## The environment in which the server should be started by default.
## Change this to "production" if you wish to run a production environment.
#rails_environment = "production"
## Write unicorn stderr and stdout log.
#stderr_log = "log/unicorn-stderr.log"
#stdout_log = "log/unicorn-stdout.log"
## Number of Unicorn worker processes (default=2).
## Increase this if you have many users.
#unicorn_worker = 2
## Number of seconds before a request is aborted (default=90).
## Increase if you get empty responses, or if large image uploads fail.
## Decrease if you're under heavy load and don't care if some
## requests fail.
#unicorn_timeout = 90
## Embed a Sidekiq worker inside the unicorn process (default=false).
## Useful for minimal Heroku setups.
#embed_sidekiq_worker = false
## Number of Sidekiq worker processes (default=1).
## In most cases it is better to
## increase environment.sidekiq.concurrency instead!
#sidekiq_workers = 1
## Displays the location of a post in a map. Per default we are using the map
## tiles of the Heidelberg University (http://giscience.uni-hd.de).
## You also have the possibility to use the map tiles of https://www.mapbox.com
## which is probably more reliable. There you have to create an account to get
## an access token which is limited. If you want to get an unlimited account
## you can write an email to team@diasporafoundation.org.
## Please enable mapbox and fill out your access_token.
[configuration.map.mapbox]
#enabled = false
#access_token = "youraccesstoken"
#style = "mapbox/streets-v9"
## Settings potentially affecting the privacy of your users.
[configuration.privacy]
## Include jQuery from jquery.com's CDN (default=false).
## Enabling this can reduce traffic and speed up load time since most
## clients already have this one cached. When set to false (the default),
## the jQuery library will be loaded from your pod's own resources.
#jquery_cdn = false
## Google Analytics (disabled by default).
## Provide a key to enable tracking by Google Analytics.
#google_analytics_key = "yourkey"
## Piwik Tracking (disabled by default).
## Provide a site ID and the host piwik is running on to enable
## tracking through Piwik.
#piwik.enable = true
#piwik.host = "stats.example.org"
#piwik.site_id = 1
## Statistics
## Your pod will report its name, software version and whether
## or not registrations are open via /statistics and NodeInfo.
## Uncomment the options below to enable more statistics.
[configuration.privacy.statistics]
## Local user total and 6 month active counts.
#user_counts = true
## Local post total count.
#post_counts = true
#comment_counts = true
## Use Camo to proxy embedded remote images.
## Do not enable this setting unless you have a working Camo setup. Using
## camo to proxy embedded images will improve the privacy and security of
## your pod's frontend, but it will increase the traffic on your server.
## Check out https://wiki.diasporafoundation.org/Installation/Camo for
## more details and installation instructions.
[configuration.privacy.camo]
## Proxy images embedded via markdown (default=false).
## Embedded images are quite often from non-SSL sites and may cause a
## partial content warning, so this is recommended.
#proxy_markdown_images = true
## Proxy Open Graph thumbnails (default=false).
## Open Graph thumbnails may or may not be encrypted and loaded from
## servers outside the network. Recommended.
#proxy_opengraph_thumbnails = true
## Proxy remote pod's images (default=false).
## Profile pictures and photos from other pods usually are encrypted,
## so enabling this is only useful if you want to avoid HTTP requests to
## third-party servers. This will create a lot of traffic on your camo
## instance. You have been warned.
#proxy_remote_pod_images = true
## Root of your Camo installation
#root = "https://example.com/camo/"
## Shared key of your Camo installation
#key = "example123example456example!"
## General settings
[configuration.settings]
## Pod name (default="diaspora*")
## The pod name displayed in various locations, including the header.
#pod_name = "diaspora*"
## Allow registrations (default=true)
## Set this to false to prevent people from signing up to your pod
## without an invitation. Note that this needs to be set to true
## (or commented out) to enable the first registration (you).
#enable_registrations = true
## Auto-follow on sign-up (default=true)
## Users will automatically follow a specified account on creation.
## Set this to false if you don't want your users to automatically
## follow an account upon creation.
#autofollow_on_join = true
## Auto-follow account (default="hq@pod.diaspora.software")
## The diaspora* HQ account keeps users up to date with news about Diaspora.
## If you set another auto-follow account (for example your podmin account),
## please consider resharing diaspora* HQ's posts for your pod's users!
#autofollow_on_join_user = "hq@pod.diaspora.software"
## Liberapay.com is a free platform which allow donations like patreon
## Set your username to include your Liberapay button
#liberapay_username = "change_me"
## Bitcoin donations
## You can provide a bitcoin address here to allow your users to provide
## donations towards the running of their pod.
#bitcoin_address = "change_me"
## Source code URL
## URL to the source code your pod is currently running.
## If not set your pod will provide a downloadable archive.
#source_url = "https://example.org/username/diaspora"
## Changelog URL
## URL to the changelog of the diaspora-version your pod is currently running.
## If not set an auto-generated url to github is used.
#changelog_url = "https://github.com/diaspora/diaspora/blob/master/Changelog.md"
## Default color theme
## You can change which color theme is displayed when a user is not signed in
## or has not selected any color theme from the available ones. You simply have
## to enter the name of the theme's folder in "app/assets/stylesheets/color_themes/".
## ("original" for the theme in "app/assets/stylesheets/color_themes/original/", for
## example).
#default_color_theme: "original"
## CURL debug (default=false)
## Turn on extra verbose output when sending stuff. Note: you
## don't need to touch this unless explicitly told to.
#typhoeus_verbose = false
## Maximum number of parallel HTTP requests made to other pods (default=20)
## Be careful, raising this setting will heavily increase the memory usage
## of your Sidekiq workers.
#typhoeus_concurrency = 20
## Maximum number of parallel user data export jobs (default=1)
## Be careful, exports of big/old profiles can use a lot of memory, running
## many of them in parallel can be a problem for small servers.
#export_concurrency = 1
## Welcome Message settings
[configuration.settings.welcome_message]
## Welcome Message on registration (default=false)
## Send a message to new users after registration
## to tell them about your pod and how things
## are handled on it.
#enabled = false
## Welcome Message subject (default="Welcome Message")
## The subject of the conversation that is started
## by your welcome message.
#subject = "Welcome Message"
## Welcome Message text (default="Hello %{username}, welcome to diaspora*.")
## The content of your welcome message.
## The placeholder "%{username}" will be replaced by the username
## of the new user.
#text = "Hello %{username}, welcome to diaspora*."
## Invitation settings
[configuration.settings.invitations]
## Enable invitations (default=true)
## Set this to false if you don't want users to be able to send invites.
#open = true
## Number of invitations per invite link (default=25)
## Every user will see such a link if you have enabled
## invitations on your pod.
#count = 25
## Paypal donations (disabled by default)
## You can set details for a Paypal button here to allow donations
## towards running the pod.
## First, enable the function, then set the currency in which you
## wish to receive donations, and **either** a hosted button id
## **or** an encrypted key for an unhosted button.
[configuration.settings.paypal_donations]
#enable = false
## Currency used (USD, EUR...)
#currency = "USD"
## Hosted Paypal button ID
#paypal_hosted_button_id = "change_me"
## OR encrypted key of unhosted button
#paypal_unhosted_button_encrypted = "-----BEGIN PKCS7-----"
## Community spotlight (disabled by default)
## The community spotlight shows new users public posts from people you
## think are interesting in Diaspora's community. To add an account
## to the community spotlight add the "spotlight" role to it.
[configuration.settings.community_spotlight]
#enable = true
## E-mail address to which users can make suggestions about who
## should be in the community spotlight (optional).
#suggest_email = "admin@example.org"
## Captcha settings
[configuration.settings.captcha]
## Enable captcha (default=true)
## Set this to false if you don't want to use captcha for signup process.
#enable = true
## Captcha image size (default="120x20")
#image_size = "120x20"
## Length of captcha text (default=5)(max=12)
#captcha_length = 5
## Captcha image style (default="simply_green")
## Available options for captcha image styles are: "simply_blue",
## "simply_red" "simply_green", "charcoal_grey", "embossed_silver",
## "all_black", "distorted_black", "almost_invisible", "random".
#image_style = "simply_green"
## Captcha image distortion (default="low")
## Sets the level of image distortion used in the captcha.
## Available options are: "low", "medium", "high", "random".
#distortion = "low"
## Terms of Service
## Show a default or customized terms of service for users.
## You can create a custom Terms of Service by placing a template
## as app/views/terms/terms.haml or app/views/terms/terms.erb
## The default terms of service that can be extended is
## at app/views/terms/default.haml
## NOTE! The default terms have not been checked over by a lawyer and
## thus are unlikely to provide full legal protection for all situations
## for a podmin using them. They are also not specific to all countries
## and jurisdictions. If you are unsure, please check with a lawyer.
## We provide these for podmins as some basic rules that podmins
## can communicate to users easily via the diaspora* server software.
## Uncomment to enable this feature.
[configuration.settings.terms]
## First enable it by uncommenting below.
#enable = true
## Important! If you enable the terms, you should always
## set a location under which laws any disputes are governed
## under. For example, country or state/country, depending
## on the country in question.
## If this is not set, the whole paragraph about governing
## laws *is not shown* in the terms page.
#jurisdiction = ""
## Age limit for signups.
## Set a number to activate this setting. This age limit is shown
## in the default ToS document.
#minimum_age = false
## Maintenance
## Various pod maintenance related settings are controlled from here.
[configuration.settings.maintenance]
## Removing old inactive users can be done automatically by background
## processing. The amount of inactivity is set by `after_days`. A warning
## email will be sent to the user and after an additional `warn_days`, the
## account will be automatically closed.
## This maintenance is not enabled by default.
#remove_old_users.enable = true
#remove_old_users.after_days = 730
#remove_old_users.warn_days = 30
#remove_old_users.limit_removals_to_per_day = 100 ## Limit queuing for removal per day.
## Default meta tags
## You can change here the default meta tags content included on the pages of your pod.
## Title will be used for the opengraph og:site_name property while description will be used
## for description and og:description.
[configuration.settings.default_metas]
#title = "diaspora* social network"
#description = "diaspora* is the online social world where you are in control."
## CSP (Content Security Policy) header
## CSP allows limiting origins from where resources are allowed to be loaded. This
## improves security, since it helps to detect and mitigate cross-site scripting
## and data injection attacks. The default policy of diaspora* allows all third
## party domains from services that are included in diaspora*, like OEmbed
## scripts, so you can safely activate it by setting `report_only` to false. If
## you customized diaspora* (edited templates or added own JS), additional work
## may be required. You can test the policy with the `report_uri`. Our default CSP
## does not work with Google analytics or Piwik, because they inject JS code that
## is blocked by CSP.
[configuration.settings.csp]
## Report-Only header (default=false)
## By default diaspora* adds a "Content-Security-Policy" header. If you set
## this to true, the "Content-Security-Policy-Report-Only" header is added instead.
#report_only = true
## CSP report URI
## You can set an URI here, where the user agent reports violations as JSON document via a POST request.
#report_uri = "/csp_violation_reports"
## Posting from Diaspora to external services (all are disabled by default).
[configuration.services]
## OAuth credentials for Twitter
#twitter.enable = true
#twitter.key = "change_me"
#twitter.secret = "change_me"
## OAuth credentials for Tumblr
#tumblr.enable = true
#tumblr.key = "change_me"
#tumblr.secret = "change_me"
## OAuth credentials for Wordpress
#wordpress.enable = true
#wordpress.client_id = "change_me"
#wordpress.secret = "change_me"
## Allow your pod to send emails for notifications, password recovery
## and other purposes (disabled by default).
[configuration.mail]
## First you need to enable it.
#enable = true
## Sender address used in mail sent by Diaspora.
#sender_address = "no-reply@example.org"
## This selects which mailer should be used. Use "smtp" for a smtp
## connection or "sendmail" to use the sendmail binary.
#method = "smtp"
## Ignored if method isn't "smtp".
[configuration.mail.smtp]
## Host and port of the smtp server handling outgoing mail.
## This should match the common name of the certificate sent by
## the SMTP server, if it sends one. (default port=587)
#host = "smtp.example.org"
#port = 587
## Authentication required to send mail (default="plain").
## Use one of "plain", "login" or "cram_md5". Use "none"
## if server does not support authentication.
#authentication = "plain"
## Credentials to log in to the SMTP server.
## May be necessary if authentication is not "none".
#username = "change_me"
#password = "change_me"
## Automatically enable TLS (default=true).
## Leave this commented out if authentication is set to "none".
#starttls_auto = true
## The domain for the HELO command, if needed.
#domain = "smtp.example.org"
## OpenSSL verify mode used when connecting to a SMTP server with TLS (default="peer").
## Set this to "none" if and only if you have a self-signed certificate.
## Possible values: "none", "peer".
#openssl_verify_mode = "none"
## Ignored if method isn't "sendmail".
[configuration.mail.sendmail]
## The path to the sendmail binary (default="/usr/sbin/sendmail")
#location = "/usr/sbin/sendmail"
## Use exim and sendmail (default=false)
#exim_fix = false
## Administrator settings
[configuration.admins]
## Set the admin account.
## This doesn't make the user an admin but is used when a generic
## admin contact is needed, much like the postmaster role in mail
## systems. Set only the username, NOT the full ID.
#account = "podmin"
## E-mail address via which the administrator can be contacted.
#podmin_email = "podmin@example.org"
## Settings related to relays
## Relays are applications that exist to push public posts around to
## pods which want to subscribe to them but would not otherwise
## receive them due to not having direct contact with the remote pods.
##
## See more regarding relays: https://wiki.diasporafoundation.org/Relay_servers_for_public_posts
[configuration.relay]
## Enable this setting to send out public posts from this pod to a relay
#outbound.send = true
## Change default remote relay url used for sending out here
#outbound.url = "https://relay.iliketoast.net/receive/public"
## Enable this to receive public posts from relays
#inbound.subscribe = true
## Scope is either "all" or "tags" (default="tags").
## - "all", means this pod wants to receive all public posts from a relay
## - "tags", means this pod wants only posts tagged with certain tags
#inbound.scope = "tags"
## If scope is "tags", should we include tags that users on this pod follow?
## These are added in addition to "pod_tags", if set.
#inbound.include_user_tags = false
## If scope is "tags", a comma separated list of tags here can be set.
## For example "linux,diaspora", to receive posts related to these tags
#inbound.pod_tags = "linux,diaspora"
## Advanced - ignore unless you know better
## You can override settings defined above if you need
## them to be different in different environments. "configuration"
## in the namespaces above refers to all environments, replace it with a
## specific environment here.
[production]
#environment.redis = "redis://production.example.org:6379"
[production.mail.sendmail]
#location = "/usr/local/bin/sendmail"
[development]
#environment.redis = "redis://dev.example.org:6379"
[development.mail.sendmail]
#location = "/opt/bin/sendmail"

View file

@ -1,713 +0,0 @@
## Some notes about this file:
## - All comments start with a double #
## - All settings are commented out with a single #
## To change the default settings, you need both to uncomment the lines
## AND, in most cases, to change the value that is given.
## - Take care to keep proper indentation, that is by simply deleting
## the original #, with no additional space before the setting's name.
## - Take care to keep proper quoting. All ' must have a matching ' at
## the end of the same line. The same goes for "
## - Lines containing "## Section" are section headings. Do not edit them!
## - Lists need the space after the -
## - The values true, false and numbers should have no quote marks.
## Single words don't need quote marks, but it doesn't do any harm to have them.
##
## You can set and/or override all these settings through environment variables
## with the following conversion rules:
## - Strip the top level namespace (configuration, production, etc.)
## - Build the path to the setting, for example environment.s3.enable
## - Replace the dots with underscores: environment_s3_enable
## - Convert to upper case: ENVIRONMENT_S3_ENABLE
## - Specify lists/arrays as comma-separated values
##
## - For example, on Heroku:
## heroku config:set SERVICES_TWITTER_KEY=yourkey SERVICES_TWITTER_SECRET=yoursecret
configuration: ## Section
## You need to change or at least review the settings in this section
## in order for your pod to work.
environment: ## Section
## Set the hostname of the machine you're running Diaspora on, as seen
## from the internet. This should be the URL you want to use to
## access the pod. So if you plan to use a reverse proxy, it should be
## the URL the proxy listens on. DO NOT CHANGE THIS AFTER INITIAL SETUP!
## However changing http to https is okay and has no consequences.
## If you do change the URL, you will have to start again as the URL
## will be hardcoded into the database.
#url: "https://example.org/"
## Set the bundle of certificate authorities (CA) certificates.
## This is specific to your operating system.
## Examples (uncomment the relevant one or add your own):
## For Debian, Ubuntu, Archlinux, Gentoo (package ca-certificates):
#certificate_authorities: '/etc/ssl/certs/ca-certificates.crt'
## For CentOS, Fedora:
#certificate_authorities: '/etc/pki/tls/certs/ca-bundle.crt'
## URL for a remote Redis (default=localhost).
## Don't forget to restrict IP access if you uncomment these!
#redis: 'redis://example_host'
#redis: 'redis://username:password@host:6379/0'
#redis: 'unix:///tmp/redis.sock'
## Require SSL (default=true).
## When set, your pod will force the use of HTTPS in production mode.
## Since OAuth2 requires SSL, Diaspora's future API might not work if
## you're not using SSL. Also there is no guarantee that posting to
## services will be possible if SSL is disabled.
## Do not change this default unless you are sure!
#require_ssl: true
## Single-process mode (default=false).
## If set to true, Diaspora will work with just the appserver (Unicorn by
## default) running. However, this makes it quite slow as intensive jobs
## must be run all the time inside the request cycle. We strongly
## recommended you leave this disabled for production setups.
## Set to true to enable.
#single_process_mode: false
## Sidekiq - background processing
sidekiq: ## Section
## Number of parallel threads Sidekiq uses (default=5).
## If you touch this, please set the pool setting in your database.yml
## to a value that's at minimum close to this! You can safely increase
## it to 25 and more on a medium-sized pod. This applies per started
## Sidekiq worker, so if you set it to 25 and start two workers, you'll
## process up to 50 jobs in parallel.
#concurrency: 5
## Number of times a job is retried (default=10).
## There's an exponential effect to this: if you set this too high you
## might get too many jobs building up in the queue.
## Set it to 0 to disable it completely.
#retry: 10
## Lines of backtrace that are stored on failure (default=15).
## Set n to the required value. Set this to false to reduce Redis memory
## usage (and log size) if you're not interested in this data.
#backtrace: 15
## Number of jobs to keep in the dead queue (default=5000).
## Jobs get into the dead queue after they failed and exhausted all retries.
## Increasing this setting will increase the memory usage of Redis.
## Once gone from the dead queue, a failed job is permanently lost and
## cannot be retried manually.
# dead_jobs_limit: 1000
## Number of seconds a job remains in the dead queue (default=3628800 (six weeks)).
## Jobs get into the dead queue after they failed and exhausted all retries.
## Increasing this setting will increase the memory usage of Redis.
## Once gone from the dead queue, a failed job is permanently lost and
## cannot be retried manually.
# dead_jobs_timeout: 15552000 # 6 months
## Log file for Sidekiq (default="log/sidekiq.log")
#log: "log/sidekiq.log"
## Use Amazon S3 instead of your local filesystem
## to handle uploaded pictures (disabled by default).
s3: ## Section
#enable: true
#key: 'change_me'
#secret: 'change_me'
#bucket: 'my_photos'
#region: 'us-east-1'
## Use max-age header on Amazon S3 resources (default=true).
## When true, this allows locally cached images to be served for up to
## one year. This can improve load speed and save requests to the image
## host. Set to false to revert to browser defaults (usually less than
## one year).
#cache : true
## Set redirect URL for an external image host (Amazon S3 or other).
## If hosting images for your pod on an external server (even your own),
## add its URL here. All requests made to images under /uploads/images
## will be redirected to https://yourhost.tld/uploads/images/
#image_redirect_url: 'https://images.example.org'
assets: ## Section
## Serve static assets via the appserver (default=false).
## This is highly discouraged for production use. Let your reverse
## proxy/webserver do it by serving the files under public/ directly.
#serve: false
## Upload your assets to S3 (default=false).
#upload: false
## Specify an asset host. Ensure it does not have a trailing slash (/).
#host: http://cdn.example.org/diaspora
## Pubsub server (default='https://pubsubhubbub.appspot.com/').
## Diaspora is only tested against the default pubsub server.
## You probably don't want to uncomment or change this.
#pubsub_server: 'https://pubsubhubbub.appspot.com/'
## Logger configuration
logging: ## Section
logrotate: ## Section
## Roll the application log on a daily basis (default=true).
#enable: true
## The number of days to keep (default=7)
#days: 7
## Debug logging
debug: ## Section
## Enables the debug-logging for SQL (default=false)
## This logs every SQL-statement!
#sql: true
## Enables the federation-debug-log (default=false)
## This logs all XMLs that are used for the federation
#federation: true
## Settings affecting how ./script/server behaves.
server: ## Section
## Where the appserver should listen to (default=unix:tmp/diaspora.sock)
#listen: 'unix:tmp/diaspora.sock'
#listen: 'unix:/run/diaspora/diaspora.sock'
#listen: '127.0.0.1:3000'
## Set the path for the PID file of the unicorn master process (default=tmp/pids/web.pid)
#pid: 'tmp/pids/web.pid'
## Rails environment (default='development').
## The environment in which the server should be started by default.
## Change this to 'production' if you wish to run a production environment.
#rails_environment: 'development'
## Write unicorn stderr and stdout log.
#stderr_log: 'log/unicorn-stderr.log'
#stdout_log: 'log/unicorn-stdout.log'
## Number of Unicorn worker processes (default=2).
## Increase this if you have many users.
#unicorn_worker: 2
## Number of seconds before a request is aborted (default=90).
## Increase if you get empty responses, or if large image uploads fail.
## Decrease if you're under heavy load and don't care if some
## requests fail.
#unicorn_timeout: 90
## Embed a Sidekiq worker inside the unicorn process (default=false).
## Useful for minimal Heroku setups.
#embed_sidekiq_worker: false
## Number of Sidekiq worker processes (default=1).
## In most cases it is better to
## increase environment.sidekiq.concurrency instead!
#sidekiq_workers: 1
## Diaspora has an internal XMPP web-client. If you want to enable the chat
## functionality or want to use a custom XMPP server, then you should edit
## the following configuration.
chat: ## Section
## Enable the chat service and all its components.
##
## Please make sure that you followed the Installation-Instructions first:
## https://wiki.diasporafoundation.org/Integration/Chat#Installation.2FUpdate
#enabled: true
## Custom XMPP server configuration goes here.
server: ## Section
## Use the configuration bridge to prosody (default=true).
## In case you want to run your own server or want to configure
## prosody on your own, you should disable it.
#enabled: false
## Set the directory in which to look for virtual hosts TLS certificates.
#certs: 'config/certs'
## XEP-0124 BOSH requests
## The easiest way of avoiding certificate and mixed-content issues
## is to use a proxy, e.g.:
##
## Apache: https://wiki.diasporafoundation.org/Integration/Chat#Apache2
## Nginx: https://wiki.diasporafoundation.org/Integration/Chat#Nginx
##
## If you configured your proxy correctly,
## you should set the proxy option to 'true'
bosh: ## Section
## If you'd like to use a proxy, you should set the proxy
## option to true, otherwise jsxc always tries to
## connect directly to the port specified below.
#proxy: true
## Configure the protocol used to access the BOSH endpoint
#proto: http
## Configure the address that prosody should listen on.
#address: '0.0.0.0'
## Configure the BOSH port.
#port: 5280
## Configure the bind endpoint.
#bind: '/http-bind'
## Specify log behaviour here.
log: ## Section
## Log file location.
#info: 'log/prosody.log'
## Error log file location.
#error: 'log/prosody.err'
## The debug level logs all XML sent and received by the server.
#debug: false
## Displays the location of a post in a map. Per default we are using the map
## tiles of the Heidelberg University (http://giscience.uni-hd.de).
## You also have the possibility to use the map tiles of https://www.mapbox.com
## which is probably more reliable. There you have to create an account to get
## an access token which is limited. If you want to get an unlimited account
## you can write an email to team@diasporafoundation.org.
## Please enable mapbox and fill out your access_token.
map: ##Section
mapbox:
#enabled: false
#access_token: "youraccesstoken"
#style: "mapbox/streets-v9"
## Settings potentially affecting the privacy of your users.
privacy: ## Section
## Include jQuery from jquery.com's CDN (default=false).
## Enabling this can reduce traffic and speed up load time since most
## clients already have this one cached. When set to false (the default),
## the jQuery library will be loaded from your pod's own resources.
#jquery_cdn: false
## Google Analytics (disabled by default).
## Provide a key to enable tracking by Google Analytics.
#google_analytics_key:
## Piwik Tracking (disabled by default).
## Provide a site ID and the host piwik is running on to enable
## tracking through Piwik.
piwik: ## Section
#enable: true
#host: 'stats.example.org'
#site_id: 1
## Statistics
## Your pod will report its name, software version and whether
## or not registrations are open via /statistics and NodeInfo.
## Uncomment the options below to enable more statistics.
statistics: ## Section
## Local user total and 6 month active counts.
#user_counts: true
## Local post total count.
#post_counts: true
#comment_counts: true
## Use Camo to proxy embedded remote images.
## Do not enable this setting unless you have a working Camo setup. Using
## camo to proxy embedded images will improve the privacy and security of
## your pod's frontend, but it will increase the traffic on your server.
## Check out https://wiki.diasporafoundation.org/Installation/Camo for
## more details and installation instructions.
camo: ## Section
## Proxy images embedded via markdown (default=false).
## Embedded images are quite often from non-SSL sites and may cause a
## partial content warning, so this is recommended.
#proxy_markdown_images: true
## Proxy Open Graph thumbnails (default=false).
## Open Graph thumbnails may or may not be encrypted and loaded from
## servers outside the network. Recommended.
#proxy_opengraph_thumbnails: true
## Proxy remote pod's images (default=false).
## Profile pictures and photos from other pods usually are encrypted,
## so enabling this is only useful if you want to avoid HTTP requests to
## third-party servers. This will create a lot of traffic on your camo
## instance. You have been warned.
#proxy_remote_pod_images: true
## Root of your Camo installation
#root: "https://example.com/camo/"
## Shared key of your Camo installation
#key: "example123example456example!"
## General settings
settings: ## Section
## Pod name (default="diaspora*")
## The pod name displayed in various locations, including the header.
#pod_name: "diaspora*"
## Allow registrations (default=true)
## Set this to false to prevent people from signing up to your pod
## without an invitation. Note that this needs to be set to true
## (or commented out) to enable the first registration (you).
#enable_registrations: true
## Auto-follow on sign-up (default=true)
## Users will automatically follow a specified account on creation.
## Set this to false if you don't want your users to automatically
## follow an account upon creation.
#autofollow_on_join: true
## Auto-follow account (default='hq@pod.diaspora.software')
## The diaspora* HQ account keeps users up to date with news about Diaspora.
## If you set another auto-follow account (for example your podmin account),
## please consider resharing diaspora* HQ's posts for your pod's users!
#autofollow_on_join_user: 'hq@pod.diaspora.software'
## Welcome Message settings
welcome_message: ##Section
## Welcome Message on registration (default=false)
## Send a message to new users after registration
## to tell them about your pod and how things
## are handled on it.
#enabled: false
## Welcome Message subject (default='Welcome Message')
## The subject of the conversation that is started
## by your welcome message.
#subject: "Welcome Message"
## Welcome Message text (default='Hello %{username}, welcome to diaspora.')
## The content of your welcome message.
## The placeholder "%{username}" will be replaced by the username
## of the new user.
#text: "Hello %{username}, welcome to diaspora."
## Invitation settings
invitations: ## Section
## Enable invitations (default=true)
## Set this to false if you don't want users to be able to send invites.
#open: true
## Number of invitations per invite link (default=25)
## Every user will see such a link if you have enabled
## invitations on your pod.
#count: 25
## Paypal donations (disabled by default)
## You can set details for a Paypal button here to allow donations
## towards running the pod.
## First, enable the function, then set the currency in which you
## wish to receive donations, and **either** a hosted button id
## **or** an encrypted key for an unhosted button.
paypal_donations: ## Section
#enable: false
## Currency used (USD, EUR...)
#currency: USD
## hosted Paypal button id
#paypal_hosted_button_id: "change_me"
## OR encrypted key of unhosted button
#paypal_unhosted_button_encrypted: "-----BEGIN PKCS7-----"
## Liberapay.com is a free platform which allow donations like patreon
## Set your username to include your liberapay button
# liberapay_username: "change_me"
## Bitcoin donations
## You can provide a bitcoin address here to allow your users to provide
## donations towards the running of their pod.
#bitcoin_address: "change_me"
## Community spotlight (disabled by default)
## The community spotlight shows new users public posts from people you
## think are interesting in Diaspora's community. To add an account
## to the community spotlight add the 'spotlight' role to it.
community_spotlight: ## Section
#enable: true
## E-mail address to which users can make suggestions about who
## should be in the community spotlight (optional).
#suggest_email: 'admin@example.org'
## CURL debug (default=false)
## Turn on extra verbose output when sending stuff. Note: you
## don't need to touch this unless explicitly told to.
#typhoeus_verbose: false
## Maximum number of parallel HTTP requests made to other pods (default=20)
## Be careful, raising this setting will heavily increase the memory usage
## of your Sidekiq workers.
#typhoeus_concurrency: 20
## Maximum number of parallel user data export jobs (default=1)
## Be careful, exports of big/old profiles can use a lot of memory, running
## many of them in parallel can be a problem for small servers.
#export_concurrency: 1
## Captcha settings
captcha: ## Section
## Enable captcha (default=true)
## Set this to false if you don't want to use captcha for signup process.
#enable: true
## Captcha image size (default='120x20')
#image_size: '120x20'
## Length of captcha text (default=5)(max=12)
#captcha_length: 5
## Captcha image style (default='simply_green')
## Available options for captcha image styles are: 'simply_blue',
## 'simply_red' 'simply_green', 'charcoal_grey', 'embossed_silver',
## 'all_black', 'distorted_black', 'almost_invisible', 'random'.
#image_style: 'simply_green'
## Captcha image distortion (default='low')
## Sets the level of image distortion used in the captcha.
## Available options are: 'low', 'medium', 'high', 'random'.
#distortion: 'low'
## Terms of Service
## Show a default or customized terms of service for users.
## You can create a custom Terms of Service by placing a template
## as app/views/terms/terms.haml or app/views/terms/terms.erb
## The default terms of service that can be extended is
## at app/views/terms/default.haml
## NOTE! The default terms have not been checked over by a lawyer and
## thus are unlikely to provide full legal protection for all situations
## for a podmin using them. They are also not specific to all countries
## and jurisdictions. If you are unsure, please check with a lawyer.
## We provide these for podmins as some basic rules that podmins
## can communicate to users easily via the diaspora* server software.
## Uncomment to enable this feature.
terms: ## Section
## First enable it by uncommenting below.
#enable: true
## Important! If you enable the terms, you should always
## set a location under which laws any disputes are governed
## under. For example, country or state/country, depending
## on the country in question.
## If this is not set, the whole paragraph about governing
## laws *is not shown* in the terms page.
#jurisdiction: ""
## Age limit for signups.
## Set a number to activate this setting. This age limit is shown
## in the default ToS document.
#minimum_age: false
## Maintenance
## Various pod maintenance related settings are controlled from here.
maintenance: ## Section
## Removing old inactive users can be done automatically by background
## processing. The amount of inactivity is set by `after_days`. A warning
## email will be sent to the user and after an additional `warn_days`, the
## account will be automatically closed.
## This maintenance is not enabled by default.
remove_old_users: ## Section
#enable: true
#after_days: 730
#warn_days: 30
## Limit queuing for removal per day.
#limit_removals_to_per_day: 100
## Source code URL
## URL to the source code your pod is currently running.
## If not set your pod will provide a downloadable archive.
#source_url: 'https://example.org/username/diaspora'
## Changelog URL
## URL to the changelog of the diaspora-version your pod is currently running.
## If not set an auto-generated url to github is used.
#changelog_url: "https://github.com/diaspora/diaspora/blob/master/Changelog.md"
## Default color theme
## You can change which color theme is displayed when a user is not signed in
## or has not selected any color theme from the available ones. You simply have
## to enter the name of the theme's folder in "app/assets/stylesheets/color_themes/".
## ("original" for the theme in "app/assets/stylesheets/color_themes/original/", for
## example).
#default_color_theme: "original"
## Default meta tags
## You can change here the default meta tags content included on the pages of your pod.
## Title will be used for the opengraph og:site_name property while description will be used
## for description and og:description.
default_metas:
#title: 'diaspora* social network'
#description: 'diaspora* is the online social world where you are in control.'
## CSP (Content Security Policy) header
## CSP allows limiting origins from where resources are allowed to be loaded. This
## improves security, since it helps to detect and mitigate cross-site scripting
## and data injection attacks. The default policy of diaspora* allows all third
## party domains from services that are included in diaspora*, like OEmbed
## scripts, so you can safely activate it by setting `report_only` to false. If
## you customized diaspora* (edited templates or added own JS), additional work
## may be required. You can test the policy with the `report_uri`. Our default CSP
## does not work with Google analytics or Piwik, because they inject JS code that
## is blocked by CSP.
csp:
## Report-Only header (default=true)
## By default diaspora* adds only a "Content-Security-Policy-Report-Only" header. If you set
## this to false, the "Content-Security-Policy" header is added instead.
#report_only: false
## CSP report URI (default=)
## You can set an URI here, where the user agent reports violations as JSON document via a POST request.
#report_uri: "/csp_violation_reports"
## Posting from Diaspora to external services (all are disabled by default).
services: ## Section
## OAuth credentials for Twitter
twitter: ## Section
#enable: true
#key: 'abcdef'
#secret: 'change_me'
## OAuth credentials for Tumblr
tumblr: ## Section
#enable: true
#key: 'abcdef'
#secret: 'change_me'
## OAuth credentials for Wordpress
wordpress: ## Section
#enable: true
#client_id: 'abcdef'
#secret: 'change_me'
## Allow your pod to send emails for notifications, password recovery
## and other purposes (disabled by default).
mail: ## Section
## First you need to enable it.
#enable: true
## Sender address used in mail sent by Diaspora.
#sender_address: 'no-reply@example.org'
## This selects which mailer should be used. Use 'smtp' for a smtp
## connection or 'sendmail' to use the sendmail binary.
#method: 'smtp'
## Ignore if method isn't 'smtp'.
smtp: ## Section
## Host and port of the smtp server handling outgoing mail.
## This should match the common name of the certificate sent by
## the SMTP server, if it sends one. (default port=587)
#host: 'smtp.example.org'
#port: 587
## Authentication required to send mail (default='plain').
## Use one of 'plain', 'login' or 'cram_md5'. Use 'none'
## if server does not support authentication.
#authentication: 'plain'
## Credentials to log in to the SMTP server.
## May be necessary if authentication is not 'none'.
#username: 'change_me'
#password: 'change_me'
## Automatically enable TLS (default=true).
## Leave this commented out if authentication is set to 'none'.
#starttls_auto: true
## The domain for the HELO command, if needed.
#domain: 'smtp.example.org'
## OpenSSL verify mode used when connecting to a SMTP server with TLS.
## Set this to 'none' if you have a self-signed certificate. Possible
## values: 'none', 'peer'.
#openssl_verify_mode: 'none'
## Ignore if method isn't 'sendmail'
sendmail: ## Section
## The path to the sendmail binary (default='/usr/sbin/sendmail')
#location: '/usr/sbin/sendmail'
## Use exim and sendmail (default=false)
#exim_fix: false
## Administrator settings
admins: ## Section
## Set the admin account.
## This doesn't make the user an admin but is used when a generic
## admin contact is needed, much like the postmaster role in mail
## systems. Set only the username, NOT the full ID.
#account: "podmaster"
## E-mail address to contact the administrator.
#podmin_email: 'podmin@example.org'
## Settings related to relays
relay: ## Section
## Relays are applications that exist to push public posts around to
## pods which want to subscribe to them but would not otherwise
## receive them due to not having direct contact with the remote pods.
##
## See more regarding relays: https://wiki.diasporafoundation.org/Relay_servers_for_public_posts
outbound: ## Section
## Enable this setting to send out public posts from this pod to a relay
#send: false
## Change default remote relay url used for sending out here
#url: 'https://relay.iliketoast.net/receive/public'
inbound: ## Section
## Enable this to receive public posts from relays
#subscribe: false
## Scope is either 'all' or 'tags' (default).
## - 'all', means this pod wants to receive all public posts from a relay
## - 'tags', means this pod wants only posts tagged with certain tags
#scope: tags
## If scope is 'tags', should we include tags that users on this pod follow?
## These are added in addition to 'pod_tags', if set.
#include_user_tags: false
## If scope is 'tags', a comma separated list of tags here can be set.
## For example "linux,diaspora", to receive posts related to these tags
#pod_tags:
## Here you can override settings defined above if you need
## to have them different in different environments.
production: ## Section
environment: ## Section
#redis: 'redis://production.example.org:6379'
development: ## Section
environment: ## Section
#redis: 'redis://production.example.org:6379'

View file

@ -31,7 +31,7 @@ Devise.setup do |config|
Rails.logger.warn("No smtp sender address set, mail may fail.")
warn "WARNING: No smtp sender address set, mail may fail."
end
config.mailer_sender = "please-change-me@config-diaspora-yml.com"
config.mailer_sender = "please-change-me@config-diaspora-toml.com"
end
# Configure the class responsible to send e-mails.

View file

@ -6,9 +6,9 @@ require 'sidekiq/middleware/i18n'
# Single process-mode
if AppConfig.environment.single_process_mode? && Rails.env != "test"
if Rails.env == 'production'
puts "WARNING: You are running Diaspora in production without Sidekiq"
puts " workers turned on. Please set single_process_mode to false in"
puts " config/diaspora.yml."
warn "WARNING: You are running Diaspora in production without Sidekiq"
warn " workers turned on. Please set single_process_mode to false in"
warn " config/diaspora.toml."
end
require 'sidekiq/testing/inline'
end

View file

@ -3,6 +3,7 @@
require "pathname"
require "bundler/setup"
require "configurate"
require "configurate/provider/toml"
rails_env = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
@ -20,18 +21,35 @@ AppConfig ||= Configurate::Settings.create do
add_provider Configurate::Provider::Dynamic
add_provider Configurate::Provider::Env
unless heroku? || rails_env == "test" || File.exist?(File.join(config_dir, "diaspora.yml"))
warn "FATAL: Configuration not found. Copy over diaspora.yml.example"
warn " to diaspora.yml and edit it to your needs."
unless heroku? ||
rails_env == "test" ||
File.exist?(File.join(config_dir, "diaspora.toml")) ||
File.exist?(File.join(config_dir, "diaspora.yml"))
warn "FATAL: Configuration not found. Copy over diaspora.toml.example"
warn " to diaspora.toml and edit it to your needs."
exit!
end
add_provider Configurate::Provider::YAML,
File.join(config_dir, "diaspora.yml"),
namespace: rails_env, required: false
add_provider Configurate::Provider::YAML,
File.join(config_dir, "diaspora.yml"),
namespace: "configuration", required: false
if File.exist?(File.join(config_dir, "diaspora.toml"))
if File.exist?(File.join(config_dir, "diaspora.yml"))
warn "WARNING: diaspora.toml found, ignoring diaspora.yml. Move or delete diaspora.yml to remove this warning."
end
add_provider Configurate::Provider::TOML,
File.join(config_dir, "diaspora.toml"),
namespace: rails_env, required: false
add_provider Configurate::Provider::TOML,
File.join(config_dir, "diaspora.toml"),
namespace: "configuration", required: false
else
add_provider Configurate::Provider::YAML,
File.join(config_dir, "diaspora.yml"),
namespace: rails_env, required: false
add_provider Configurate::Provider::YAML,
File.join(config_dir, "diaspora.yml"),
namespace: "configuration", required: false
end
add_provider Configurate::Provider::YAML,
File.join(config_dir, "defaults.yml"),
namespace: rails_env

View file

@ -86,7 +86,7 @@ Logging::Rails.configure do |config|
# Default log-level (development=debug, production=info)
Logging.logger.root.level = config.log_level
# log-levels from the diaspora.yml for SQL and federation debug-logging
# log-levels from the diaspora.toml for SQL and federation debug-logging
Logging.logger[ActionView::Base].level = Rails.env.development? ? :debug : :warn
Logging.logger[ActiveRecord::Base].level = AppConfig.environment.logging.debug.sql? ? :debug : :info
Logging.logger[DiasporaFederation::Salmon::MagicEnvelope].level =

View file

@ -257,7 +257,7 @@ dia_config() {
if [ ! -z $dia_config_delete ]; then
rm "$DIASPORA_CONFIG_DIA" "$DIASPORA_CONFIG_DB"
fi
# Create new diaspora.yml if none exists
# Create new diaspora.toml if none exists
if [ ! -f "$DIASPORA_CONFIG_DIA" ]; then
cp "$DIASPORA_CONFIG_DIA".example "$DIASPORA_CONFIG_DIA"
fi
@ -477,7 +477,7 @@ export SCRIPT_ROOT=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
export DIASPORA_ROOT=$(dirname "$SCRIPT_ROOT")
export DIASPORA_ROOT_UID=1001
export DIASPORA_ROOT_GID=1001
export DIASPORA_CONFIG_DIA=$DIASPORA_ROOT/config/diaspora.yml
export DIASPORA_CONFIG_DIA=$DIASPORA_ROOT/config/diaspora.toml
export DIASPORA_CONFIG_DB=$DIASPORA_ROOT/config/database.yml
export DIASPORA_DOCKER_DB=$(dia_get_db)

View file

@ -55,10 +55,15 @@ then
fatal "config/database.yml is missing! Copy over config/database.yml.example to config/database.yml and edit it properly!"
fi
# Check if diaspora.yml exists
if [ ! -e "config/diaspora.yml" ]
# Check if diaspora.toml exists
if [ -e "config/diaspora.toml" ]
then
fatal "config/diaspora.yml is missing! Copy over config/diaspora.yml.example to config/diaspora.yml and edit it properly!"
CONFIG_FILE="config/diaspora.toml"
elif [ -e "config/diaspora.yml" ]
then
CONFIG_FILE="config/diaspora.yml"
else
fatal "config/diaspora.toml is missing! Copy over config/diaspora.toml.example to config/diaspora.toml and edit it properly!"
fi
command -v git > /dev/null 2>&1
@ -100,7 +105,7 @@ fi
if [ -z "$RAILS_ENV" ]
then
RAILS_ENV=$(bin/bundle exec ruby ./script/get_config.rb server.rails_environment | grep -vE "is not writable|as your home directory temporarily" )
on_failure "Couldn't parse config/diaspora.yml!"
on_failure "Couldn't parse $CONFIG_FILE!"
export RAILS_ENV
fi
@ -116,7 +121,7 @@ vars=$(bin/bundle exec ruby ./script/get_config.rb \
redis_url=environment.redis \
| grep -vE "is not writable|as your home directory temporarily"
)
on_failure "Couldn't parse config/diaspora.yml!"
on_failure "Couldn't parse $CONFIG_FILE!"
eval "$vars"
args="$@"
@ -170,10 +175,10 @@ then
if [ -n "$redis_url" ]
then
redis_param="url: '$redis_url'"
fi
fi
if [ "$(bin/bundle exec ruby -e "require 'redis'; puts Redis.new($redis_param).ping" 2> /dev/null | grep -vE "is not writable|as your home directory temporarily" )" != "PONG" ]
then
fatal "Can't connect to redis. Please check if it's running and if environment.redis is configured correctly in config/diaspora.yml."
fatal "Can't connect to redis. Please check if it's running and if environment.redis is configured correctly in $CONFIG_FILE."
fi
fi