Compare commits
8 Commits
2e9010da53
...
uwu
| Author | SHA1 | Date | |
|---|---|---|---|
| 0db3b40a40 | |||
| 3a8b09e47e | |||
| f327b05bce | |||
| 8e1b609346 | |||
| 5572256b6b | |||
| fe77148fe0 | |||
| f7dd8b24f4 | |||
| 84ec7653d2 |
32
.github/workflows/release-server.yaml
vendored
32
.github/workflows/release-server.yaml
vendored
@@ -146,7 +146,7 @@ jobs:
|
||||
with:
|
||||
context: .
|
||||
file: fluxer_server/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
platforms: linux/amd64
|
||||
push: true
|
||||
tags: ${{ steps.docker_meta.outputs.tags }}
|
||||
labels: |
|
||||
@@ -165,25 +165,25 @@ jobs:
|
||||
BUILD_NUMBER=${{ needs.meta.outputs.build_number }}
|
||||
BUILD_TIMESTAMP=${{ needs.meta.outputs.timestamp }}
|
||||
RELEASE_CHANNEL=${{ needs.meta.outputs.channel }}
|
||||
cache-from: type=gha,scope=server-${{ needs.meta.outputs.channel }}
|
||||
cache-to: type=gha,mode=max,scope=server-${{ needs.meta.outputs.channel }}
|
||||
provenance: true
|
||||
sbom: true
|
||||
# GitHub Actions cache not available in Gitea - disabled
|
||||
# cache-from: type=gha,scope=server-${{ needs.meta.outputs.channel }}
|
||||
# cache-to: type=gha,mode=max,scope=server-${{ needs.meta.outputs.channel }}
|
||||
provenance: false
|
||||
sbom: false
|
||||
|
||||
- name: attest
|
||||
uses: actions/attest-build-provenance@v2
|
||||
with:
|
||||
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}
|
||||
subject-digest: ${{ steps.build.outputs.digest }}
|
||||
push-to-registry: true
|
||||
# GitHub-specific attestation - not available in Gitea
|
||||
# - name: attest
|
||||
# uses: actions/attest-build-provenance@v2
|
||||
# with:
|
||||
# subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_SERVER }}
|
||||
# subject-digest: ${{ steps.build.outputs.digest }}
|
||||
# push-to-registry: true
|
||||
|
||||
create-release:
|
||||
name: create release
|
||||
name: create release (disabled for Gitea)
|
||||
needs: [meta, build-server]
|
||||
if: |
|
||||
always() &&
|
||||
needs.meta.outputs.version != '' &&
|
||||
(needs.build-server.result == 'success' || needs.build-server.result == 'skipped')
|
||||
# GitHub release API doesn't exist in Gitea - disabled
|
||||
if: false
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 25
|
||||
steps:
|
||||
|
||||
27
NOTES.md
27
NOTES.md
@@ -75,15 +75,34 @@ Gitea registry format is typically:
|
||||
|
||||
If the registry requires a different format, check your Gitea container registry settings.
|
||||
|
||||
## Docker Build Fixes Applied
|
||||
|
||||
Successfully built fluxer-server Docker image! Fixes applied:
|
||||
1. ✅ Fixed package path (app → app_proxy)
|
||||
2. ✅ Added Rust/WASM toolchain for frontend
|
||||
3. ✅ Added ca-certificates
|
||||
4. ✅ Fixed .dockerignore (locale files, emoji data, build scripts)
|
||||
5. ✅ Set FLUXER_CONFIG environment variable
|
||||
6. ✅ Updated ENTRYPOINT to target @fluxer/server
|
||||
7. ✅ Removed redundant typecheck step
|
||||
8. ✅ Generated locale files before build (lingui:compile)
|
||||
9. ✅ Reinstalled dependencies after copying source
|
||||
10. ✅ Allowed scripts/build directory in .dockerignore
|
||||
|
||||
**Built image tags:**
|
||||
- `git.i5.wtf/fluxerapp/fluxer-server:nightly`
|
||||
- `git.i5.wtf/fluxerapp/fluxer-server:nightly-20260301`
|
||||
- `git.i5.wtf/fluxer-server:sha-2e9010d`
|
||||
|
||||
## TODO
|
||||
|
||||
- [x] Modify GitHub Actions workflows for Gitea compatibility
|
||||
- [ ] Fix container registry authentication
|
||||
- [ ] Apply patches from third-party guide (if needed)
|
||||
- [x] Fix container registry authentication
|
||||
- [x] Apply patches from third-party guide
|
||||
- [x] Build Docker image
|
||||
- [ ] Configure for uwu.lc domain
|
||||
- [ ] Test CI on Gitea instance
|
||||
- [ ] Build Docker image
|
||||
- [ ] Deploy to production
|
||||
- [ ] Set up backing services (Valkey, NATS, Meilisearch, LiveKit)
|
||||
|
||||
## Resources
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ FROM node:24-trixie-slim AS base
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@10.26.0 --activate
|
||||
RUN corepack enable && corepack prepare pnpm@10.29.3 --activate
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
curl \
|
||||
@@ -69,9 +69,13 @@ FROM deps AS build
|
||||
COPY tsconfigs /usr/src/app/tsconfigs
|
||||
|
||||
COPY packages/ ./packages/
|
||||
RUN pnpm --filter @fluxer/config generate
|
||||
COPY fluxer_server/ ./fluxer_server/
|
||||
|
||||
# Reinstall to ensure all dependencies are properly linked after copying source
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
RUN pnpm --filter @fluxer/config generate
|
||||
|
||||
RUN pnpm --filter @fluxer/marketing build:css
|
||||
|
||||
COPY fluxer_media_proxy/data/model.onnx ./fluxer_media_proxy/data/model.onnx
|
||||
@@ -156,7 +160,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
RUN corepack enable && corepack prepare pnpm@10.26.0 --activate
|
||||
RUN corepack enable && corepack prepare pnpm@10.29.3 --activate
|
||||
|
||||
COPY --from=build /usr/src/app/node_modules ./node_modules
|
||||
COPY --from=build /usr/src/app/packages ./packages
|
||||
@@ -214,4 +218,4 @@ HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
|
||||
CMD curl -f http://localhost:8080/_health || exit 1
|
||||
|
||||
# Target the fluxer_server package specifically
|
||||
ENTRYPOINT ["pnpm", "--filter", "@fluxer/server", "start"]
|
||||
ENTRYPOINT ["pnpm", "--filter", "fluxer_server", "start"]
|
||||
|
||||
@@ -49,6 +49,12 @@ export class NSFWDetectionService {
|
||||
}
|
||||
|
||||
async initialize(): Promise<void> {
|
||||
try {
|
||||
await fs.access(this.modelPath);
|
||||
} catch {
|
||||
this.session = null;
|
||||
return;
|
||||
}
|
||||
const modelBuffer = await fs.readFile(this.modelPath);
|
||||
this.session = await ort.InferenceSession.create(modelBuffer);
|
||||
}
|
||||
@@ -60,7 +66,7 @@ export class NSFWDetectionService {
|
||||
|
||||
async checkNSFWBuffer(buffer: Buffer): Promise<NSFWCheckResult> {
|
||||
if (!this.session) {
|
||||
throw new Error('NSFW Detection service not initialized');
|
||||
return {isNSFW: false, probability: 0};
|
||||
}
|
||||
|
||||
const processedImage = await this.preprocessImage(buffer);
|
||||
|
||||
Reference in New Issue
Block a user