diff --git a/.gitignore b/.gitignore index c05e777..bcb2719 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ repos +.claude diff --git a/envs/social-app b/envs/social-app index a6752de..a1bc28f 100644 --- a/envs/social-app +++ b/envs/social-app @@ -1 +1,3 @@ -ATP_APPVIEW_HOST=https://bsky.${host} +ATP_APPVIEW_HOST=https://public.api.bsky.app +EXPO_PUBLIC_BLUESKY_PROXY_DID=did:web:api.bsky.app +EXPO_PUBLIC_ENV=production diff --git a/install.zsh b/install.zsh index 3fd5020..ea16515 100755 --- a/install.zsh +++ b/install.zsh @@ -73,6 +73,7 @@ function at-repos-pull() { echo $repo if [ -d $d/repos/${repo##*/} ];then cd $d/repos/${repo##*/} + git stash if ! git pull;then rm -rf $d/repos/${repo##*/} at-repos-clone @@ -100,9 +101,8 @@ function at-repos-social-app-icon-origin() { curl -sL $icon -o $d/icons/Logotype.tsx } -function at-repos-social-app-write() { +function at-repos-social-app-avatar-write() { did_admin=did:plc:6qyecktefllvenje24fcxnie - dt=$d/repos/social-app/src cd $dt grep -R syu.is .|cut -d : -f 1|sort -u|xargs sed -i "s/syu.is/${host}/g" @@ -123,7 +123,7 @@ function at-repos-social-app-write() { grep -R $did_admin .|cut -d : -f 1|sort -u|xargs sed -i "s/${did_admin}/${did}/g" } -function at-service-bsky-api-patch() { +function at-repos-atproto-service-bsky-api-patch() { # https://github.com/itaru2622/bluesky-selfhost-env/blob/master/patching/105-atproto-services-for-docker.diff f=$d/repos/atproto/services/bsky/api.js curl -sL https://raw.githubusercontent.com/bluesky-social/atproto/refs/heads/main/services/bsky/api.js -o $f @@ -135,7 +135,7 @@ function at-service-bsky-api-patch() { popd } -function at-service-pds-index-patch() { +function at-repos-atproto-service-pds-index-patch() { f=$d/repos/atproto/services/pds/index.js curl -sL https://raw.githubusercontent.com/bluesky-social/atproto/refs/heads/main/services/pds/index.js -o $f d_=$d/repos/atproto @@ -146,7 +146,17 @@ function at-service-pds-index-patch() { popd } -function at-repos-social-app-patch() { +function at-repos-social-app-agent-patch() { + f=$d/repos/social-app/src/state/session/agent.ts + p_=$d/patching/8980-social-app-disable-proxy.diff + d_=$d/repos/social-app + echo "applying patch: under ${f} for ${p_}" + pushd ${d_} + patch -p1 < ${p_} + popd +} + +function at-repos-social-app-docker-patch() { f=$d/repos/social-app/Dockerfile p_=$d/patching/social-app-dockerfile.diff d_=$d/repos/social-app @@ -176,19 +186,31 @@ function at-repos-ozone-patch() { pushd ${d_} patch -p1 < ${p_} popd - #cp -rf $d/repos/atproto/service/ozone/* $d/ozone/service/ } -function at-repos-docker() { +function at-repos-build-docker-atproto() { cd $d - docker compose build - # docker compose up -d - # docker compose up -d --no-build - # docker compose up -d --pull always + docker image prune -a + docker compose build --no-cache bsky plc pds jetstream bgs ozone } -function at-regi-docker() { +function at-repos-build-docker-social() { + cd $d + docker compose build --no-cache social-app +} + +function at-repos-build-docker-tag() { + docker restart registry + docker stop registry + docker rm registry + docker volume rm registry-data 2>/dev/null || true + docker run -d -p 5000:5000 --name registry \ + --restart=always \ + -v registry-data:/var/lib/registry \ + registry:2 + sleep 3 + docker run -d -p ${dport}:${dport} --name registry --restart=always registry:2 docker tag at-pds:latest localhost:${dport}/pds:latest docker tag at-ozone-web:latest localhost:${dport}/ozone-web:latest @@ -210,19 +232,35 @@ function at-regi-docker() { docker push localhost:${dport}/plc:latest docker push localhost:${dport}/social-app:latest - docker restart registry + cd $d + docker compose down } -at-repos-env -at-repos-clone -at-repos-pull -at-repos-social-app-icon -at-repos-social-app-icon-origin -at-repos-social-app-write -at-service-bsky-api-patch -at-service-pds-index-patch -at-repos-social-app-patch -at-repos-ozone-patch -at-repos-docker -# at-regi-docker +function at-repos-pull-docker() { + cd $d + docker image prune -a + docker compose up -d --pull always +} + +at-repos-env + +case "`cat /etc/hostname`" in + at) + at-repos-pull-docker + ;; + *) + at-repos-clone + at-repos-pull + at-repos-social-app-icon + at-repos-social-app-icon-origin + at-repos-social-app-avatar-write + at-repos-atproto-service-bsky-api-patch + at-repos-atproto-service-pds-index-patch + at-repos-social-app-docker-patch + at-repos-social-app-agent-patch + at-repos-ozone-patch + at-repos-build-docker-atproto + at-repos-build-docker-social + ;; +esac diff --git a/patching/4367-atproto-services-bsky-api.diff b/patching/4367-atproto-services-bsky-api.diff index b3f5256..f887230 100644 --- a/patching/4367-atproto-services-bsky-api.diff +++ b/patching/4367-atproto-services-bsky-api.diff @@ -1,5 +1,5 @@ ---- repos/atproto/services/bsky/api.js 2025-12-03 11:04:54 -+++ patching/api.js 2025-12-03 11:00:02 +--- a/services/bsky/api.js 2025-12-03 11:04:54 ++++ b/services/bsky/api.js 2025-12-03 11:00:02 @@ -1,62 +1,105 @@ /* eslint-env node */ /* eslint-disable import/order */ diff --git a/patching/4367-atproto-services-pds-index.diff b/patching/4367-atproto-services-pds-index.diff index 1b29f8e..a8165f8 100644 --- a/patching/4367-atproto-services-pds-index.diff +++ b/patching/4367-atproto-services-pds-index.diff @@ -1,5 +1,5 @@ ---- repos/atproto/services/pds/index.js 2025-12-03 11:04:54 -+++ patching/index.js 2025-12-02 22:11:39 +--- a/services/pds/index.js 2025-12-03 11:04:54 ++++ b/services/pds/index.js 2025-12-02 22:11:39 @@ -1,5 +1,5 @@ /* eslint-env node */ - diff --git a/patching/8980-social-app-disable-proxy.diff b/patching/8980-social-app-disable-proxy.diff new file mode 100644 index 0000000..4bc454f --- /dev/null +++ b/patching/8980-social-app-disable-proxy.diff @@ -0,0 +1,44 @@ +diff --git a/src/state/session/agent.ts b/src/state/session/agent.ts +index 36d19299b..ba095436a 100644 +--- a/src/state/session/agent.ts ++++ b/src/state/session/agent.ts +@@ -39,7 +39,8 @@ export function createPublicAgent() { + configureModerationForGuest() // Side effect but only relevant for tests + + const agent = new BskyAppAgent({service: PUBLIC_BSKY_SERVICE}) +- agent.configureProxy(BLUESKY_PROXY_HEADER.get()) ++ // Disable proxy for self-hosted environments ++ // agent.configureProxy(BLUESKY_PROXY_HEADER.get()) + return agent + } + +@@ -77,7 +78,8 @@ export async function createAgentAndResume( + } + } + +- agent.configureProxy(BLUESKY_PROXY_HEADER.get()) ++ // Disable proxy for self-hosted environments ++ // agent.configureProxy(BLUESKY_PROXY_HEADER.get()) + + return agent.prepare(gates, moderation, onSessionChange) + } +@@ -112,7 +114,8 @@ export async function createAgentAndLogin( + const gates = tryFetchGates(account.did, 'prefer-fresh-gates') + const moderation = configureModerationForAccount(agent, account) + +- agent.configureProxy(BLUESKY_PROXY_HEADER.get()) ++ // Disable proxy for self-hosted environments ++ // agent.configureProxy(BLUESKY_PROXY_HEADER.get()) + + return agent.prepare(gates, moderation, onSessionChange) + } +@@ -201,7 +204,8 @@ export async function createAgentAndCreateAccount( + logger.error(e, {message: `session: failed snoozeEmailConfirmationPrompt`}) + } + +- agent.configureProxy(BLUESKY_PROXY_HEADER.get()) ++ // Disable proxy for self-hosted environments ++ // agent.configureProxy(BLUESKY_PROXY_HEADER.get()) + + return agent.prepare(gates, moderation, onSessionChange) + }