Files
SocialPub/tools/pasture/peers/iceshrimp.sh
T
thepraandClaude Opus 5.5 02a05d7a9a Town: Iceshrimp.NET joins, and its mentions go nowhere new
Iceshrimp.NET 2026.1.2-beta runs in the pasture with AuthorizedFetch on;
its driver registers through the native API and takes Mastodon tokens from
its OAuth form. The pair passes 225 cells. A new Iceshrimp note reaches its
author's followers only, never an account it mentions or answers, until it
is edited (G-0004, peer): delivery cells now say when a server holds a post
only because it was addressed.

The checker credits a seeder's fetch to the object fetched, not to the reply
that needed it; the seeder skips the wait for an accept whose follow was
already accepted; the PrivaPub driver signs its roots in again when a run
reuses saved sessions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
2026-10-05 01:54:36 +02:00

60 lines
1.8 KiB
Bash

# Iceshrimp.NET (2026.1): the strict one. AuthorizedFetch on (every fetch from it is signed, and it answers unsigned
# reads 401), full JSON-LD expansion that drops undefined terms, several reactions per user. .NET, so it trusts Caddy's CA
# through SSL_CERT_FILE. On the shared Postgres (database iceshrimp); the town makes its users with its own CLI.
ICESHRIMP_IMAGE=${ICESHRIMP_IMAGE:-iceshrimp.dev/iceshrimp/iceshrimp.net:v2026.1.2-beta}
. "$here/peers/shared.sh"
iceshrimp_up() {
shared_postgres_up
pg_db iceshrimp
mkdir -p "$here/.state/iceshrimp/media"
cat > "$here/.state/iceshrimp/configuration.ini" <<'INI'
[Instance]
ListenPort = 3000
ListenHost = 0.0.0.0
WebDomain = iceshrimp.test
AccountDomain = iceshrimp.test
CharacterLimit = 8192
[Security]
AuthorizedFetch = true
ValidateRequestSignatures = true
AllowLoopback = true
AllowLocalIPv4 = true
AllowLocalIPv6 = true
Registrations = Open
FederationMode = BlockList
PublicPreview = Public
[Database]
Host = postgres
Port = 5432
Database = iceshrimp
Username = pasture
Password = pasture
MaxConnections = 50
[Storage]
Provider = Local
MaxUploadSize = 100M
ProxyRemoteMedia = true
[Storage:Local]
Path = /app/media
[Logging:LogLevel]
Default = Information
Microsoft.AspNetCore = Warning
Microsoft.EntityFrameworkCore = Warning
INI
chmod -R a+rwX "$here/.state/iceshrimp"
podman run -d --replace --name pasture-iceshrimp --network $net -e SSL_CERT_FILE=/pasture/ca/bundle.pem \
-v "$here/.state/iceshrimp/configuration.ini:/app/configuration.ini:z,ro" -v "$here/.state/iceshrimp/media:/app/media:z" \
-v "$ca:/pasture/ca:z,ro" $ICESHRIMP_IMAGE >/dev/null
for _ in $(seq 1 90); do
site iceshrimp.test -s -o /dev/null -w '%{http_code}' https://iceshrimp.test:6443/api/v1/instance 2>/dev/null | grep -q 200 && break
sleep 2
done
echo "iceshrimp: https://iceshrimp.test:6443"
}