chore(apps): retire morphos-server, did-wallet, lightning-stack, cryptpad
Store-listing components are filtered via the shared serviceNames canon; these four never earn a tile: MorphOS server is old, the Web5 DID wallet and CryptPad are untested, Lightning Stack is an untracked upstream bundle (LND covers it).
This commit is contained in:
@@ -117,18 +117,6 @@
|
|||||||
"bitcoin-knots"
|
"bitcoin-knots"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "cryptpad",
|
|
||||||
"title": "CryptPad",
|
|
||||||
"version": "2024.12.0",
|
|
||||||
"description": "End-to-end encrypted documents, spreadsheets, and presentations. Zero-knowledge collaboration.",
|
|
||||||
"icon": "/assets/icon/favico-black-v2.svg",
|
|
||||||
"author": "XWiki SAS",
|
|
||||||
"category": "data",
|
|
||||||
"tier": "optional",
|
|
||||||
"dockerImage": "source.archipelago-foundation.org/lfg2025/cryptpad:2024.12.0",
|
|
||||||
"repoUrl": "https://github.com/cryptpad/cryptpad"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "cuprate",
|
"id": "cuprate",
|
||||||
"title": "Cuprate",
|
"title": "Cuprate",
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
app:
|
|
||||||
id: cryptpad
|
|
||||||
name: CryptPad
|
|
||||||
version: 2024.12.0
|
|
||||||
upstream:
|
|
||||||
kind: github
|
|
||||||
repo: cryptpad/cryptpad
|
|
||||||
description: End-to-end encrypted documents, spreadsheets, and presentations. Zero-knowledge collaboration.
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: source.archipelago-foundation.org/lfg2025/cryptpad:2024.12.0
|
|
||||||
pull_policy: if-not-present
|
|
||||||
network: pasta
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- storage: 5Gi
|
|
||||||
|
|
||||||
resources:
|
|
||||||
memory_limit: 1Gi
|
|
||||||
disk_limit: 5Gi
|
|
||||||
|
|
||||||
security:
|
|
||||||
capabilities: []
|
|
||||||
readonly_root: false
|
|
||||||
no_new_privileges: true
|
|
||||||
network_policy: isolated
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- host: 3000
|
|
||||||
container: 3000
|
|
||||||
protocol: tcp
|
|
||||||
bind: 127.0.0.1
|
|
||||||
# gated: CryptPad is browser-only (its own per-user accounts sit on top
|
|
||||||
# of the node login, exactly like Vaultwarden), so the gate's session
|
|
||||||
# challenge costs nothing and keeps the pads behind the node login.
|
|
||||||
auth: gated
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- type: bind
|
|
||||||
source: /var/lib/archipelago/cryptpad
|
|
||||||
target: /cryptpad/data
|
|
||||||
options: [rw]
|
|
||||||
|
|
||||||
environment: []
|
|
||||||
|
|
||||||
health_check:
|
|
||||||
type: tcp
|
|
||||||
endpoint: localhost:3000
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
interfaces:
|
|
||||||
main:
|
|
||||||
name: CryptPad
|
|
||||||
description: Encrypted collaboration suite
|
|
||||||
type: ui
|
|
||||||
port: 3000
|
|
||||||
protocol: http
|
|
||||||
path: /
|
|
||||||
|
|
||||||
metadata:
|
|
||||||
author: XWiki SAS
|
|
||||||
category: data
|
|
||||||
icon: /assets/icon/favico-black-v2.svg
|
|
||||||
repo: https://github.com/cryptpad/cryptpad
|
|
||||||
tier: optional
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
node_modules
|
|
||||||
dist
|
|
||||||
*.log
|
|
||||||
.git
|
|
||||||
.gitignore
|
|
||||||
README.md
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
FROM node:20-alpine AS builder
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy package files
|
|
||||||
COPY package*.json ./
|
|
||||||
RUN npm ci
|
|
||||||
|
|
||||||
# Copy source code
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# Build the application
|
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
# Production stage
|
|
||||||
FROM node:20-alpine
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy built application
|
|
||||||
COPY --from=builder /app/dist ./dist
|
|
||||||
COPY --from=builder /app/node_modules ./node_modules
|
|
||||||
COPY --from=builder /app/package.json ./
|
|
||||||
COPY --from=builder /app/public ./public
|
|
||||||
|
|
||||||
# Create non-root user
|
|
||||||
RUN addgroup -g 1000 appuser && \
|
|
||||||
adduser -D -u 1000 -G appuser appuser && \
|
|
||||||
mkdir -p /app/wallet && \
|
|
||||||
chown -R appuser:appuser /app
|
|
||||||
|
|
||||||
USER appuser
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
ENV WALLET_STORAGE=/app/wallet
|
|
||||||
ENV DWN_ENDPOINT=http://web5-dwn:3000
|
|
||||||
|
|
||||||
CMD ["node", "dist/index.js"]
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# DID Wallet
|
|
||||||
|
|
||||||
Web5 wallet with Decentralized Identifier (DID) support.
|
|
||||||
|
|
||||||
## Building
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# From the apps directory
|
|
||||||
./build.sh did-wallet
|
|
||||||
|
|
||||||
# Or manually
|
|
||||||
cd did-wallet
|
|
||||||
docker build -t archipelago/did-wallet:latest .
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd did-wallet
|
|
||||||
npm install
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## Ports
|
|
||||||
|
|
||||||
- **8083**: Web UI (dev: 18083)
|
|
||||||
|
|
||||||
## Running Locally
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run -p 8083:8080 \
|
|
||||||
-v /tmp/archipelago-dev/did-wallet:/app/wallet \
|
|
||||||
-e DWN_ENDPOINT=http://localhost:13000 \
|
|
||||||
archipelago/did-wallet:latest
|
|
||||||
```
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
app:
|
|
||||||
id: did-wallet
|
|
||||||
name: Web5 DID Wallet
|
|
||||||
version: 1.0.0
|
|
||||||
# Built by this project — there is no upstream release feed to watch.
|
|
||||||
upstream:
|
|
||||||
kind: internal
|
|
||||||
description: Web5 wallet with Decentralized Identifier (DID) support. Manage your digital identity and Web5 assets.
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: archipelago/did-wallet:1.0.0
|
|
||||||
image_signature: cosign://...
|
|
||||||
pull_policy: if-not-present
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- storage: 2Gi
|
|
||||||
|
|
||||||
resources:
|
|
||||||
cpu_limit: 1
|
|
||||||
memory_limit: 512Mi
|
|
||||||
disk_limit: 2Gi
|
|
||||||
|
|
||||||
security:
|
|
||||||
capabilities: []
|
|
||||||
readonly_root: true
|
|
||||||
no_new_privileges: true
|
|
||||||
user: 1000
|
|
||||||
seccomp_profile: default
|
|
||||||
network_policy: isolated
|
|
||||||
apparmor_profile: did-wallet
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- host: 8088
|
|
||||||
container: 8080
|
|
||||||
protocol: tcp # Web UI
|
|
||||||
bind: 127.0.0.1
|
|
||||||
auth: gated
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- type: bind
|
|
||||||
source: /var/lib/archipelago/did-wallet
|
|
||||||
target: /app/wallet
|
|
||||||
options: [rw]
|
|
||||||
|
|
||||||
environment:
|
|
||||||
- WALLET_STORAGE=/app/wallet
|
|
||||||
|
|
||||||
health_check:
|
|
||||||
type: http
|
|
||||||
endpoint: http://127.0.0.1:8080
|
|
||||||
path: /health
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
web5_integration:
|
|
||||||
did_support: true
|
|
||||||
wallet_functionality: true
|
|
||||||
bitcoin_integration: true
|
|
||||||
Generated
-2747
File diff suppressed because it is too large
Load Diff
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "did-wallet",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "Web5 DID Wallet for Archipelago",
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsc",
|
|
||||||
"start": "node dist/index.js",
|
|
||||||
"dev": "ts-node src/index.ts"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"express": "^4.18.2",
|
|
||||||
"@web5/api": "^0.9.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/express": "^4.17.21",
|
|
||||||
"@types/node": "^20.10.0",
|
|
||||||
"typescript": "^5.3.3",
|
|
||||||
"ts-node": "^10.9.2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>DID Wallet</title>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
font-family: system-ui, -apple-system, sans-serif;
|
|
||||||
max-width: 800px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>Web5 DID Wallet</h1>
|
|
||||||
<p>Decentralized Identity Wallet for Archipelago</p>
|
|
||||||
<div id="app">
|
|
||||||
<p>Wallet interface coming soon...</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
import express from 'express';
|
|
||||||
|
|
||||||
const app = express();
|
|
||||||
const port = 8080;
|
|
||||||
|
|
||||||
// Middleware
|
|
||||||
app.use(express.json());
|
|
||||||
app.use(express.static('public'));
|
|
||||||
|
|
||||||
// Health check endpoint
|
|
||||||
app.get('/health', (req, res) => {
|
|
||||||
res.json({ status: 'ok', service: 'did-wallet' });
|
|
||||||
});
|
|
||||||
|
|
||||||
// Wallet API endpoints
|
|
||||||
app.get('/api/wallet/info', (req, res) => {
|
|
||||||
res.json({
|
|
||||||
status: 'ok',
|
|
||||||
wallet: {
|
|
||||||
dids: [],
|
|
||||||
balance: 0
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
app.post('/api/wallet/did/create', async (req, res) => {
|
|
||||||
// Placeholder for DID creation
|
|
||||||
res.json({
|
|
||||||
status: 'ok',
|
|
||||||
did: 'did:key:placeholder'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Start server
|
|
||||||
app.listen(port, '0.0.0.0', () => {
|
|
||||||
console.log(`DID Wallet listening on port ${port}`);
|
|
||||||
});
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2020",
|
|
||||||
"module": "commonjs",
|
|
||||||
"lib": ["ES2020"],
|
|
||||||
"outDir": "./dist",
|
|
||||||
"rootDir": "./src",
|
|
||||||
"strict": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"resolveJsonModule": true
|
|
||||||
},
|
|
||||||
"include": ["src/**/*"],
|
|
||||||
"exclude": ["node_modules", "dist"]
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
# Lightning Stack - uses official image
|
|
||||||
FROM lightninglabs/lightning-stack:v0.12.0
|
|
||||||
|
|
||||||
# Default configuration is in the image
|
|
||||||
# No additional setup needed
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
app:
|
|
||||||
id: lightning-stack
|
|
||||||
name: Lightning Stack
|
|
||||||
version: 0.12.0
|
|
||||||
# No public listing exists for lightninglabs/lightning-stack (checked
|
|
||||||
# docker.io, ghcr.io and github.com) — nothing can be queried automatically,
|
|
||||||
# so this one is tracked by hand.
|
|
||||||
upstream:
|
|
||||||
kind: manual
|
|
||||||
url: no public listing for lightninglabs/lightning-stack — verify by hand
|
|
||||||
description: Complete Lightning Network implementation. Includes LND, CLN, and management tools.
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: lightninglabs/lightning-stack:v0.12.0
|
|
||||||
image_signature: cosign://...
|
|
||||||
pull_policy: if-not-present
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- app_id: bitcoin-core
|
|
||||||
version: ">=24.0"
|
|
||||||
- storage: 50Gi
|
|
||||||
|
|
||||||
resources:
|
|
||||||
cpu_limit: 4
|
|
||||||
memory_limit: 4Gi
|
|
||||||
disk_limit: 50Gi
|
|
||||||
|
|
||||||
security:
|
|
||||||
capabilities: [NET_BIND_SERVICE]
|
|
||||||
readonly_root: true
|
|
||||||
no_new_privileges: true
|
|
||||||
user: 1000
|
|
||||||
seccomp_profile: default
|
|
||||||
network_policy: isolated
|
|
||||||
apparmor_profile: lightning-stack
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- host: 9738
|
|
||||||
container: 9735
|
|
||||||
protocol: tcp # P2P
|
|
||||||
auth: none
|
|
||||||
auth_rationale: >-
|
|
||||||
Lightning p2p. The BOLT-8 noise handshake authenticates and encrypts the channel itself.
|
|
||||||
- host: 10010
|
|
||||||
container: 10009
|
|
||||||
protocol: tcp # gRPC
|
|
||||||
auth: none
|
|
||||||
auth_rationale: >-
|
|
||||||
LND gRPC, authenticated by macaroon over TLS. Remote wallets depend on reaching this directly.
|
|
||||||
# Mirrors lnd's 18080 exemption — same LND REST API, same macaroon auth.
|
|
||||||
- host: 8091
|
|
||||||
container: 8080
|
|
||||||
protocol: tcp # REST/Web UI
|
|
||||||
auth: none
|
|
||||||
auth_rationale: >-
|
|
||||||
LND REST, authenticated by macaroon over TLS. A browser login page would break
|
|
||||||
Zeus and every non-browser wallet client, exactly as for lnd's 18080.
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- type: bind
|
|
||||||
source: /var/lib/archipelago/lightning-stack
|
|
||||||
target: /root/.lightning
|
|
||||||
options: [rw]
|
|
||||||
|
|
||||||
environment:
|
|
||||||
- BITCOIND_HOST=bitcoin-core
|
|
||||||
- BITCOIND_RPCUSER=${BITCOIN_RPC_USER}
|
|
||||||
- BITCOIND_RPCPASS=${BITCOIN_RPC_PASSWORD}
|
|
||||||
- NETWORK=mainnet
|
|
||||||
|
|
||||||
health_check:
|
|
||||||
type: http
|
|
||||||
endpoint: http://127.0.0.1:8080
|
|
||||||
path: /v1/getinfo
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
bitcoin_integration:
|
|
||||||
rpc_access: admin
|
|
||||||
sync_required: true
|
|
||||||
|
|
||||||
lightning_integration:
|
|
||||||
channel_management: true
|
|
||||||
payment_routing: true
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
node_modules
|
|
||||||
dist
|
|
||||||
*.log
|
|
||||||
.git
|
|
||||||
.gitignore
|
|
||||||
README.md
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
FROM node:20-alpine AS builder
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy package files
|
|
||||||
COPY package*.json ./
|
|
||||||
RUN npm ci --only=production
|
|
||||||
|
|
||||||
# Copy source code
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
# Build the application
|
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
# Production stage
|
|
||||||
FROM node:20-alpine
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Copy built application
|
|
||||||
COPY --from=builder /app/dist ./dist
|
|
||||||
COPY --from=builder /app/node_modules ./node_modules
|
|
||||||
COPY --from=builder /app/package.json ./
|
|
||||||
|
|
||||||
# Create non-root user
|
|
||||||
RUN addgroup -g 1000 appuser && \
|
|
||||||
adduser -D -u 1000 -G appuser appuser && \
|
|
||||||
mkdir -p /app/data && \
|
|
||||||
chown -R appuser:appuser /app
|
|
||||||
|
|
||||||
USER appuser
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
ENV MORPHOS_DATA_DIR=/app/data
|
|
||||||
|
|
||||||
CMD ["node", "dist/index.js"]
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
app:
|
|
||||||
id: morphos-server
|
|
||||||
name: MorphOS Server
|
|
||||||
version: 1.0.0
|
|
||||||
# Built by this project — there is no upstream release feed to watch.
|
|
||||||
upstream:
|
|
||||||
kind: internal
|
|
||||||
description: MorphOS server platform. Decentralized application server.
|
|
||||||
|
|
||||||
container:
|
|
||||||
image: archipelago/morphos-server:1.0.0
|
|
||||||
image_signature: cosign://...
|
|
||||||
pull_policy: if-not-present
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
- storage: 5Gi
|
|
||||||
|
|
||||||
resources:
|
|
||||||
cpu_limit: 2
|
|
||||||
memory_limit: 2Gi
|
|
||||||
disk_limit: 5Gi
|
|
||||||
|
|
||||||
security:
|
|
||||||
capabilities: []
|
|
||||||
readonly_root: true
|
|
||||||
no_new_privileges: true
|
|
||||||
user: 1000
|
|
||||||
seccomp_profile: default
|
|
||||||
network_policy: isolated
|
|
||||||
apparmor_profile: morphos-server
|
|
||||||
|
|
||||||
ports:
|
|
||||||
- host: 8089
|
|
||||||
container: 8080
|
|
||||||
protocol: tcp # Web UI
|
|
||||||
bind: 127.0.0.1
|
|
||||||
auth: gated
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- type: bind
|
|
||||||
source: /var/lib/archipelago/morphos-server
|
|
||||||
target: /app/data
|
|
||||||
options: [rw]
|
|
||||||
|
|
||||||
environment:
|
|
||||||
- MORPHOS_ENV=production
|
|
||||||
- MORPHOS_DATA_DIR=/app/data
|
|
||||||
|
|
||||||
health_check:
|
|
||||||
type: http
|
|
||||||
endpoint: http://127.0.0.1:8080
|
|
||||||
path: /health
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
Generated
-1161
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "morphos-server",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "MorphOS server platform",
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"scripts": {
|
|
||||||
"build": "tsc",
|
|
||||||
"start": "node dist/index.js",
|
|
||||||
"dev": "ts-node src/index.ts"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"express": "^4.18.2"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/express": "^4.17.21",
|
|
||||||
"@types/node": "^20.10.0",
|
|
||||||
"typescript": "^5.3.3",
|
|
||||||
"ts-node": "^10.9.2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
import express from 'express';
|
|
||||||
|
|
||||||
const app = express();
|
|
||||||
const port = 8080;
|
|
||||||
|
|
||||||
// Middleware
|
|
||||||
app.use(express.json());
|
|
||||||
|
|
||||||
// Health check endpoint
|
|
||||||
app.get('/health', (req, res) => {
|
|
||||||
res.json({ status: 'ok', service: 'morphos-server', version: '1.0.0' });
|
|
||||||
});
|
|
||||||
|
|
||||||
// API endpoints
|
|
||||||
app.get('/api/info', (req, res) => {
|
|
||||||
res.json({
|
|
||||||
name: 'MorphOS Server',
|
|
||||||
version: '1.0.0',
|
|
||||||
status: 'running'
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// Start server
|
|
||||||
app.listen(port, '0.0.0.0', () => {
|
|
||||||
console.log(`MorphOS Server listening on port ${port}`);
|
|
||||||
console.log(`Data directory: ${process.env.MORPHOS_DATA_DIR || '/app/data'}`);
|
|
||||||
});
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2020",
|
|
||||||
"module": "commonjs",
|
|
||||||
"lib": ["ES2020"],
|
|
||||||
"outDir": "./dist",
|
|
||||||
"rootDir": "./src",
|
|
||||||
"strict": true,
|
|
||||||
"esModuleInterop": true,
|
|
||||||
"skipLibCheck": true,
|
|
||||||
"forceConsistentCasingInFileNames": true,
|
|
||||||
"resolveJsonModule": true
|
|
||||||
},
|
|
||||||
"include": ["src/**/*"],
|
|
||||||
"exclude": ["node_modules", "dist"]
|
|
||||||
}
|
|
||||||
@@ -163,7 +163,6 @@ fn image_var_for_app(app_id: &str) -> Option<&'static str> {
|
|||||||
"vaultwarden" => Some("VAULTWARDEN_IMAGE"),
|
"vaultwarden" => Some("VAULTWARDEN_IMAGE"),
|
||||||
"nextcloud" => Some("NEXTCLOUD_IMAGE"),
|
"nextcloud" => Some("NEXTCLOUD_IMAGE"),
|
||||||
"searxng" => Some("SEARXNG_IMAGE"),
|
"searxng" => Some("SEARXNG_IMAGE"),
|
||||||
"cryptpad" => Some("CRYPTPAD_IMAGE"),
|
|
||||||
"filebrowser" => Some("FILEBROWSER_IMAGE"),
|
"filebrowser" => Some("FILEBROWSER_IMAGE"),
|
||||||
"nginx-proxy-manager" => Some("NPM_IMAGE"),
|
"nginx-proxy-manager" => Some("NPM_IMAGE"),
|
||||||
"portainer" => Some("PORTAINER_IMAGE"),
|
"portainer" => Some("PORTAINER_IMAGE"),
|
||||||
|
|||||||
@@ -117,18 +117,6 @@
|
|||||||
"bitcoin-knots"
|
"bitcoin-knots"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "cryptpad",
|
|
||||||
"title": "CryptPad",
|
|
||||||
"version": "2024.12.0",
|
|
||||||
"description": "End-to-end encrypted documents, spreadsheets, and presentations. Zero-knowledge collaboration.",
|
|
||||||
"icon": "/assets/icon/favico-black-v2.svg",
|
|
||||||
"author": "XWiki SAS",
|
|
||||||
"category": "data",
|
|
||||||
"tier": "optional",
|
|
||||||
"dockerImage": "source.archipelago-foundation.org/lfg2025/cryptpad:2024.12.0",
|
|
||||||
"repoUrl": "https://github.com/cryptpad/cryptpad"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "cuprate",
|
"id": "cuprate",
|
||||||
"title": "Cuprate",
|
"title": "Cuprate",
|
||||||
|
|||||||
+3177
-3501
File diff suppressed because one or more lines are too long
@@ -19,13 +19,10 @@ INTERNAL_MANIFEST_IDS = {
|
|||||||
"archy-nbxplorer",
|
"archy-nbxplorer",
|
||||||
"bitcoin-ui",
|
"bitcoin-ui",
|
||||||
"core-lightning",
|
"core-lightning",
|
||||||
"did-wallet",
|
|
||||||
"electrs-ui",
|
"electrs-ui",
|
||||||
"fips-ui",
|
"fips-ui",
|
||||||
"lightning-stack",
|
|
||||||
"lnd-ui",
|
"lnd-ui",
|
||||||
"mempool-api",
|
"mempool-api",
|
||||||
"morphos-server",
|
|
||||||
"router",
|
"router",
|
||||||
"strfry",
|
"strfry",
|
||||||
"web5-dwn",
|
"web5-dwn",
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ SINGLE = {
|
|||||||
"vaultwarden": "VAULTWARDEN_IMAGE",
|
"vaultwarden": "VAULTWARDEN_IMAGE",
|
||||||
"nextcloud": "NEXTCLOUD_IMAGE",
|
"nextcloud": "NEXTCLOUD_IMAGE",
|
||||||
"searxng": "SEARXNG_IMAGE",
|
"searxng": "SEARXNG_IMAGE",
|
||||||
"cryptpad": "CRYPTPAD_IMAGE",
|
|
||||||
"filebrowser": "FILEBROWSER_IMAGE",
|
"filebrowser": "FILEBROWSER_IMAGE",
|
||||||
"nginx-proxy-manager": "NPM_IMAGE",
|
"nginx-proxy-manager": "NPM_IMAGE",
|
||||||
"portainer": "PORTAINER_IMAGE",
|
"portainer": "PORTAINER_IMAGE",
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ NEXTCLOUD_IMAGE="$ARCHY_REGISTRY/nextcloud:29"
|
|||||||
SEARXNG_IMAGE="$ARCHY_REGISTRY/searxng:latest"
|
SEARXNG_IMAGE="$ARCHY_REGISTRY/searxng:latest"
|
||||||
# OnlyOffice removed — incompatible with rootless Podman (internal postgres/rabbitmq fail)
|
# OnlyOffice removed — incompatible with rootless Podman (internal postgres/rabbitmq fail)
|
||||||
# Replaced by CryptPad (single Node.js process, e2e encrypted)
|
# Replaced by CryptPad (single Node.js process, e2e encrypted)
|
||||||
CRYPTPAD_IMAGE="$ARCHY_REGISTRY/cryptpad:2024.12.0"
|
|
||||||
FILEBROWSER_IMAGE="$ARCHY_REGISTRY/filebrowser:v2.27.0"
|
FILEBROWSER_IMAGE="$ARCHY_REGISTRY/filebrowser:v2.27.0"
|
||||||
NPM_IMAGE="$ARCHY_REGISTRY/nginx-proxy-manager:latest"
|
NPM_IMAGE="$ARCHY_REGISTRY/nginx-proxy-manager:latest"
|
||||||
# 2.39.1 is what the fleet has actually been running via the moving :latest
|
# 2.39.1 is what the fleet has actually been running via the moving :latest
|
||||||
|
|||||||
Reference in New Issue
Block a user