Owner decision 2026-10-04: SecureMode on once the pasture passes with it.
- Both clean pasture passes were run over all six peers:
- normally: 246 passed, 0 failed;
- with Federation__SecureMode=true: every federation check passed. The only failures were four checks expecting an
unsigned GET to get 404 or 410 where SecureMode answers 401. Those checks now go through `unserved` and
`gone_unsigned` (lib/interop.sh), which expect 401 when SecureMode is on.
- Circle posts now reach their member on GoToSocial and Mastodon, and survive Mastodon's signed refetch, as does a
followers-only post. The GoToSocial expected failure is gone.
- appsettings.Production.json turns SecureMode on.
- The deploy now checks that an unsigned GET of @thepra answers 401 and that a browser is redirected. It reads
@thepra's discoverability through the Mastodon API, since the actor is no longer readable unsigned.
- docs/INTEROP.md (Mastodon, GoToSocial), CLAUDE.md and ROADMAP updated.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ELjqpznMFMNrJoJUj6K5p2
93 lines
2.3 KiB
JSON
93 lines
2.3 KiB
JSON
{
|
|
"Media": {
|
|
"Root": "/var/lib/privapub/media"
|
|
},
|
|
"Registrations": {
|
|
"Mode": "Invitations"
|
|
},
|
|
"Federation": {
|
|
"SecureMode": true
|
|
},
|
|
"Statistics": {
|
|
"Crawler": {
|
|
"Enabled": true,
|
|
"Seeds": [
|
|
"mastodon.social",
|
|
"fosstodon.org",
|
|
"mas.to",
|
|
"lemmy.world",
|
|
"lemmy.ml",
|
|
"misskey.io",
|
|
"pixelfed.social",
|
|
"framatube.org",
|
|
"piefed.social",
|
|
"bookwyrm.social"
|
|
]
|
|
}
|
|
},
|
|
"MongoSettings": {
|
|
"Database": "PrivaPub",
|
|
"LogsDatabase": "logs",
|
|
"ConnectionString": "mongodb://127.0.0.1:27022"
|
|
},
|
|
"AppConfiguration": {
|
|
"Version": "0.0.0",
|
|
"BackendBaseAddress": "https://privapub.thepra.dev",
|
|
"FrontendBaseAddress": "https://decepub.thepra.dev",
|
|
"MaxAllowedUploadFiles": 3,
|
|
"MaxAllowedFileSize": 2097152,
|
|
"ValidDiscussionFilesTypes": ".odt,.docx,.pdf,.xlsx,.ods,.odp,.pptx,.png,.jpg,.jpeg",
|
|
"SupportedLanguages": [
|
|
"en", "it", "de", "fr", "es", "ja", "ru", "zh", "bg", "cs", "da", "nl", "et", "fi", "el", "hu", "lv", "lt", "pl", "pt", "ro", "sk", "sl", "sv"
|
|
],
|
|
"EmailConfiguration": {
|
|
"SmtpServer": "mail.privateemail.com",
|
|
"SmtpPort": 465,
|
|
"UseSSL": true,
|
|
"SmtpUsername": "support@collanon.app",
|
|
"SmtpPassword": "c4kXUJFQeKC2dVQbZqxZ"
|
|
},
|
|
"HashingOptions": {
|
|
"Iterations": 10101
|
|
},
|
|
"Jwt": {
|
|
"Key": "FVkEHw8t84HVXE/+3fyY6gH1AJIlLVNE9UqOzFNBdRKsdFuKrCFBvys0IQfZu+d2Qgg6KtslgntiedPMO98iKg==",
|
|
"Issuer": "https://privapub.thepra.dev",
|
|
"Audience": "https://privapub.thepra.dev",
|
|
"HoursTimeout": 365
|
|
}
|
|
},
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning"
|
|
}
|
|
},
|
|
"Serilog": {
|
|
"MinimumLevel": {
|
|
"Default": "Information",
|
|
"Override": {
|
|
"Microsoft.AspNetCore": "Warning"
|
|
}
|
|
},
|
|
"WriteTo": [
|
|
{
|
|
"Name": "MongoDBCapped",
|
|
"Args": {
|
|
"databaseUrl": "mongodb://127.0.0.1:27022/logs",
|
|
"collectionName": "PrivaPub",
|
|
"cappedMaxSizeMb": "1024",
|
|
"cappedMaxDocuments": "10000"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Console",
|
|
"Args": {
|
|
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
|
|
"outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} <s:{SourceContext}>{NewLine}{Exception}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"AllowedHosts": "privapub.thepra.dev;localhost;127.0.0.1"
|
|
} |