Our Personal Data Server from scratch!
0

Configure Feed

Select the types of activity you want to include in your feed.

tranquil-pds / justfile
8.4 kB 184 lines
1default: 2 @just --list 3 4run: 5 cargo run -p tranquil-server 6run-dev: 7 docker compose --profile dev up 8run-release: 9 cargo run -p tranquil-server --release 10gen-config: 11 cargo run -p tranquil-server -- config-template > example.toml 12build: 13 cargo build 14build-release: 15 cargo build --release 16check: 17 cargo check 18clippy: 19 cargo clippy -- -D warnings 20fmt: 21 cargo fmt 22fmt-check: 23 cargo fmt -- --check 24lint: fmt-check clippy 25 26test-store: 27 SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harness 28 29test-store-sim-nightly: 30 SQLX_OFFLINE=true TRANQUIL_SIM_SEEDS=10000 cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile sim-nightly 31 32gauntlet-pr: 33 SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-pr --test gauntlet_smoke 34 35gauntlet-nightly HOURS="6": 36 SQLX_OFFLINE=true GAUNTLET_DURATION_HOURS={{HOURS}} cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-nightly --test gauntlet_smoke --run-ignored all 37 38gauntlet-farm SCENARIO HOURS="6" DUMP="proptest-regressions": 39 SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- farm --scenario {{SCENARIO}} --hours {{HOURS}} --dump-regressions {{DUMP}} 40 41gauntlet-repro SEED SCENARIO="smoke-pr": 42 SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --scenario {{SCENARIO}} --seed {{SEED}} 43 44gauntlet-repro-config CONFIG SEED: 45 SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --config {{CONFIG}} --seed {{SEED}} 46 47gauntlet-repro-from FILE: 48 SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- repro --from {{FILE}} 49 50gauntlet-sweep CONFIG SEEDS="8" DUMP="proptest-regressions": 51 SQLX_OFFLINE=true cargo run --release --bin tranquil-gauntlet --features tranquil-store/gauntlet-cli -- sweep --config {{CONFIG}} --seeds {{SEEDS}} --dump-regressions {{DUMP}} 52 53gauntlet-soak HOURS="24" OUTPUT="": 54 SQLX_OFFLINE=true GAUNTLET_SOAK_HOURS={{HOURS}} GAUNTLET_SOAK_OUTPUT={{OUTPUT}} cargo nextest run -p tranquil-store --features tranquil-store/test-harness --profile gauntlet-soak --test gauntlet_soak --run-ignored all -- soak_long_leak_gate 55 56gauntlet-soak-heapprof HOURS="24" OUTPUT="" PREFIX="jeprof.gauntlet": 57 SQLX_OFFLINE=true \ 58 GAUNTLET_SOAK_HOURS={{HOURS}} \ 59 GAUNTLET_SOAK_OUTPUT={{OUTPUT}} \ 60 MALLOC_CONF="prof:true,prof_active:true,prof_final:true,lg_prof_sample:19,prof_prefix:{{PREFIX}}" \ 61 cargo nextest run -p tranquil-store \ 62 --features tranquil-store/test-harness,tranquil-store/gauntlet-jemalloc-prof \ 63 --profile gauntlet-soak --test gauntlet_soak --run-ignored all -- soak_long_leak_gate 64 65gauntlet-flaky SEED="1": 66 SQLX_OFFLINE=true cargo nextest run -p tranquil-store --features tranquil-store/test-harness --test gauntlet_flaky --run-ignored all 67 68fuzz-target TARGET SECONDS="60" SANITIZER="address": 69 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer {{SANITIZER}} {{TARGET}} -- -max_total_time={{SECONDS}} 70 71fuzz-pr SECONDS="60": 72 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_block_record -- -max_total_time={{SECONDS}} 73 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_hint_record -- -max_total_time={{SECONDS}} 74 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address segment_scan -- -max_total_time={{SECONDS}} 75 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address metastore_key_codec -- -max_total_time={{SECONDS}} 76 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address gauntlet_micro -- -max_total_time={{SECONDS}} 77 78fuzz-nightly SECONDS="21600": 79 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_block_record -- -max_total_time={{SECONDS}} 80 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address decode_hint_record -- -max_total_time={{SECONDS}} 81 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address segment_scan -- -max_total_time={{SECONDS}} 82 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address metastore_key_codec -- -max_total_time={{SECONDS}} 83 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer address gauntlet_micro -- -max_total_time={{SECONDS}} 84 85fuzz-ubsan TARGET SECONDS="60": 86 cd crates/tranquil-store/fuzz && cargo +nightly fuzz run --sanitizer undefined {{TARGET}} -- -max_total_time={{SECONDS}} 87 88test-store-asan: 89 SQLX_OFFLINE=true \ 90 ASAN_OPTIONS="halt_on_error=1:abort_on_error=1:detect_leaks=1" \ 91 RUSTFLAGS="-Zsanitizer=address" \ 92 RUSTDOCFLAGS="-Zsanitizer=address" \ 93 cargo +nightly nextest run -p tranquil-store --features tranquil-store/test-harness --target x86_64-unknown-linux-gnu 94 95test-unit: 96 SQLX_OFFLINE=true cargo test --test dpop_unit --test validation_edge_cases --test scope_edge_cases 97 98test-auth: 99 ./scripts/run-tests.sh --test oauth --test oauth_lifecycle --test oauth_scopes --test oauth_security --test jwt_security --test session_management --test change_password --test password_reset 100 101test-admin: 102 ./scripts/run-tests.sh --test admin_email --test admin_invite --test admin_moderation --test admin_search --test admin_stats 103 104test-sync: 105 ./scripts/run-tests.sh --test sync_repo --test sync_blob --test sync_conformance --test sync_deprecated --test firehose_validation 106 107test-repo: 108 ./scripts/run-tests.sh --test repo_batch --test repo_blob --test record_validation --test lifecycle_record 109 110test-identity: 111 ./scripts/run-tests.sh --test identity --test did_web --test plc_migration --test plc_operations --test plc_validation 112 113test-account: 114 ./scripts/run-tests.sh --test lifecycle_session --test delete_account --test invite --test email_update --test account_notifications 115 116test-security: 117 ./scripts/run-tests.sh --test security_fixes --test banned_words --test rate_limit --test moderation 118 119test-import: 120 ./scripts/run-tests.sh --test import_verification --test import_with_verification 121 122test-misc: 123 ./scripts/run-tests.sh --test actor --test commit_signing --test image_processing --test lifecycle_social --test notifications --test server --test signing_key --test verify_live_commit 124 125test *args: 126 @just test-unit 127 ./scripts/run-tests.sh {{args}} 128 129test-embedded *args: 130 @just test-unit 131 SQLX_OFFLINE=true TRANQUIL_TEST_BACKEND=store TRANQUIL_PDS_ALLOW_INSECURE_SECRETS=1 DISABLE_RATE_LIMITING=1 TRANQUIL_LEXICON_OFFLINE=1 SKIP_IMPORT_VERIFICATION=true cargo nextest run -E 'not binary(store_parity)' {{args}} 132 133test-one name: 134 ./scripts/run-tests.sh --test {{name}} 135 136infra-start: 137 ./scripts/test-infra.sh start 138infra-stop: 139 ./scripts/test-infra.sh stop 140infra-status: 141 ./scripts/test-infra.sh status 142 143clean: 144 cargo clean 145doc: 146 cargo doc --open 147db-create: 148 DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database create 149db-migrate: 150 DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx migrate run 151db-reset: 152 DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database drop -y 153 DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx database create 154 DATABASE_URL="postgres://postgres:postgres@localhost:5432/pds" sqlx migrate run 155podman-up: 156 podman compose up -d 157podman-down: 158 podman compose down 159podman-logs: 160 podman compose logs -f 161container-build: 162 podman build -t atcr.io/tranquil.farm/tranquil-pds:latest . 163container-pull: 164 podman pull atcr.io/tranquil.farm/tranquil-pds:latest 165 166frontend-dev: 167 cd frontend && pnpm run dev 168frontend-build: 169 cd frontend && pnpm run build 170frontend-check: 171 cd frontend && pnpm run check 172frontend-clean: 173 rm -rf frontend/dist frontend/node_modules 174 175frontend-test *args: 176 cd frontend && VITEST=true pnpm run test:run {{args}} 177frontend-test-watch: 178 cd frontend && VITEST=true pnpm run test:watch 179frontend-test-ui: 180 cd frontend && VITEST=true pnpm run test:ui 181frontend-test-coverage: 182 cd frontend && VITEST=true pnpm run test:run --coverage 183 184build-all: frontend-build build