apps
This commit is contained in:
parent
1ac70634bd
commit
a81f655133
@ -5,10 +5,13 @@ This directory contains all prepackaged containerized applications for Archipela
|
||||
## App Overview
|
||||
|
||||
### Bitcoin & Lightning
|
||||
- **bitcoin-core**: Full Bitcoin node (ports: 8332, 8333)
|
||||
- **bitcoin-core**: Full Bitcoin node (ports: 8332, 8333) - v24.0.0
|
||||
- **lnd**: Lightning Network Daemon (ports: 9735, 10009, 8080)
|
||||
- **core-lightning**: Core Lightning implementation (ports: 9736, 9835)
|
||||
- **btcpay-server**: Bitcoin payment processor (ports: 80, 443)
|
||||
- **lightning-stack**: Complete Lightning implementation (ports: 9737, 10010, 8087) - v0.12.0
|
||||
- **btcpay-server**: Bitcoin payment processor (ports: 80, 443) - v1.12.0
|
||||
- **mempool**: Blockchain explorer (port: 4080) - v2.5.0
|
||||
- **fedimint**: Federated Bitcoin minting (ports: 8173, 8174) - v0.3.0
|
||||
|
||||
### Nostr Relays
|
||||
- **nostr-rs-relay**: High-performance Rust relay (port: 8081)
|
||||
@ -18,6 +21,18 @@ This directory contains all prepackaged containerized applications for Archipela
|
||||
- **web5-dwn**: Decentralized Web Node (port: 3000)
|
||||
- **did-wallet**: Web5 DID Wallet (port: 8083)
|
||||
|
||||
### Self-Hosted Services
|
||||
- **home-assistant**: Home automation (port: 8123) - v2024.1.0
|
||||
- **grafana**: Monitoring and dashboards (port: 3001) - v10.2.0
|
||||
- **ollama**: Local AI models (port: 11434) - v0.1.0
|
||||
- **searxng**: Privacy search engine (port: 8888) - v2024.1.0
|
||||
- **onlyoffice**: Office suite (port: 8088) - v7.5.0
|
||||
- **penpot**: Design platform (port: 8089) - v2.0.0
|
||||
|
||||
### Custom Applications
|
||||
- **endurain**: Application platform (port: 8085) - v1.0.0
|
||||
- **morphos-server**: MorphOS server (port: 8086) - v1.0.0
|
||||
|
||||
### Mesh Networking
|
||||
- **router**: Mesh routing and network management (ports: 8084, 5353, 1900)
|
||||
- **meshtastic**: LoRa mesh networking (ports: 4403, 1883)
|
||||
@ -26,18 +41,16 @@ This directory contains all prepackaged containerized applications for Archipela
|
||||
|
||||
All apps use unique base ports. In development mode, ports are offset by 10000 (configurable).
|
||||
|
||||
| App | Base Ports | Dev Ports (offset +10000) |
|
||||
|-----|------------|---------------------------|
|
||||
| bitcoin-core | 8332, 8333 | 18332, 18333 |
|
||||
| lnd | 9735, 10009, 8080 | 19735, 20009, 18080 |
|
||||
| core-lightning | 9736, 9835 | 19736, 19835 |
|
||||
| btcpay-server | 80, 443 | 10080, 10443 |
|
||||
| nostr-rs-relay | 8081 | 18081 |
|
||||
| strfry | 8082 | 18082 |
|
||||
| did-wallet | 8083 | 18083 |
|
||||
| router | 8084, 5353, 1900 | 18084, 15353, 11900 |
|
||||
| web5-dwn | 3000 | 13000 |
|
||||
| meshtastic | 4403, 1883 | 14403, 11883 |
|
||||
See [PORTS.md](./PORTS.md) for complete port mapping.
|
||||
|
||||
Key apps:
|
||||
- **bitcoin-core**: 8332, 8333 → 18332, 18333
|
||||
- **btcpay-server**: 80, 443 → 10080, 10443
|
||||
- **home-assistant**: 8123 → 18123
|
||||
- **grafana**: 3001 → 13001
|
||||
- **mempool**: 4080 → 14080
|
||||
- **ollama**: 11434 → 21434
|
||||
- **lightning-stack**: 9737, 10010, 8087 → 19737, 20010, 18087
|
||||
|
||||
## Building Apps
|
||||
|
||||
|
||||
@ -4,35 +4,59 @@ This document lists all port assignments for Archipelago apps.
|
||||
|
||||
## Production Ports
|
||||
|
||||
| App | Port(s) | Protocol | Service |
|
||||
|-----|---------|----------|---------|
|
||||
| bitcoin-core | 8332, 8333 | TCP | RPC, P2P |
|
||||
| lnd | 9735, 10009, 8080 | TCP | P2P, gRPC, REST |
|
||||
| core-lightning | 9736, 9835 | TCP | P2P, gRPC |
|
||||
| btcpay-server | 80, 443 | TCP | HTTP, HTTPS |
|
||||
| nostr-rs-relay | 8081 | TCP | HTTP/WebSocket |
|
||||
| strfry | 8082 | TCP | HTTP/WebSocket |
|
||||
| did-wallet | 8083 | TCP | Web UI |
|
||||
| router | 8084, 5353, 1900 | TCP/UDP | Web UI, mDNS, SSDP |
|
||||
| web5-dwn | 3000 | TCP | HTTP API |
|
||||
| meshtastic | 4403, 1883 | TCP | HTTP API, MQTT |
|
||||
| App | Port(s) | Protocol | Service | Dev Port(s) |
|
||||
|-----|---------|----------|---------|-------------|
|
||||
| bitcoin-core | 8332, 8333 | TCP | RPC, P2P | 18332, 18333 |
|
||||
| btcpay-server | 80, 443 | TCP | HTTP, HTTPS | 10080, 10443 |
|
||||
| home-assistant | 8123 | TCP | Web UI | 18123 |
|
||||
| grafana | 3001 | TCP | Web UI | 13001 |
|
||||
| endurain | 8085 | TCP | Web UI | 18085 |
|
||||
| fedimint | 8173, 8174 | TCP | API, Web UI | 18173, 18174 |
|
||||
| morphos-server | 8086 | TCP | Web UI | 18086 |
|
||||
| lightning-stack | 9737, 10010, 8087 | TCP | P2P, gRPC, REST | 19737, 20010, 18087 |
|
||||
| mempool | 4080 | TCP | Web UI | 14080 |
|
||||
| ollama | 11434 | TCP | API | 21434 |
|
||||
| searxng | 8888 | TCP | Web UI | 18888 |
|
||||
| onlyoffice | 8088 | TCP | Web UI | 18088 |
|
||||
| penpot | 8089 | TCP | Web UI | 18089 |
|
||||
| lnd | 9735, 10009, 8080 | TCP | P2P, gRPC, REST | 19735, 20009, 18080 |
|
||||
| core-lightning | 9736, 9835 | TCP | P2P, gRPC | 19736, 19835 |
|
||||
| nostr-rs-relay | 8081 | TCP | HTTP/WebSocket | 18081 |
|
||||
| strfry | 8082 | TCP | HTTP/WebSocket | 18082 |
|
||||
| did-wallet | 8083 | TCP | Web UI | 18083 |
|
||||
| router | 8084, 5353, 1900 | TCP/UDP | Web UI, mDNS, SSDP | 18084, 15353, 11900 |
|
||||
| web5-dwn | 3000 | TCP | HTTP API | 13000 |
|
||||
| meshtastic | 4403, 1883 | TCP | HTTP API, MQTT | 14403, 11883 |
|
||||
|
||||
## Development Ports (Offset: +10000)
|
||||
|
||||
In development mode, all ports are offset by 10000 to avoid conflicts with production services.
|
||||
|
||||
| App | Dev Port(s) | Access URL |
|
||||
|-----|-------------|------------|
|
||||
| bitcoin-core | 18332, 18333 | http://localhost:18332 |
|
||||
| lnd | 19735, 20009, 18080 | http://localhost:18080 |
|
||||
| core-lightning | 19736, 19835 | http://localhost:19835 |
|
||||
| btcpay-server | 10080, 10443 | http://localhost:10080 |
|
||||
| nostr-rs-relay | 18081 | http://localhost:18081 |
|
||||
| strfry | 18082 | http://localhost:18082 |
|
||||
| did-wallet | 18083 | http://localhost:18083 |
|
||||
| router | 18084, 15353, 11900 | http://localhost:18084 |
|
||||
| web5-dwn | 13000 | http://localhost:13000 |
|
||||
| meshtastic | 14403, 11883 | http://localhost:14403 |
|
||||
### Quick Access URLs (Development)
|
||||
|
||||
| App | Dev URL |
|
||||
|-----|----------|
|
||||
| Bitcoin Core RPC | http://localhost:18332 |
|
||||
| BTCPay Server | http://localhost:10080 |
|
||||
| Home Assistant | http://localhost:18123 |
|
||||
| Grafana | http://localhost:13001 |
|
||||
| Endurain | http://localhost:18085 |
|
||||
| Fedimint | http://localhost:18174 |
|
||||
| MorphOS Server | http://localhost:18086 |
|
||||
| Lightning Stack | http://localhost:18087 |
|
||||
| Mempool | http://localhost:14080 |
|
||||
| Ollama | http://localhost:21434 |
|
||||
| SearXNG | http://localhost:18888 |
|
||||
| OnlyOffice | http://localhost:18088 |
|
||||
| Penpot | http://localhost:18089 |
|
||||
| LND REST | http://localhost:18080 |
|
||||
| Core Lightning | http://localhost:19835 |
|
||||
| Nostr RS Relay | http://localhost:18081 |
|
||||
| Strfry | http://localhost:18082 |
|
||||
| DID Wallet | http://localhost:18083 |
|
||||
| Router | http://localhost:18084 |
|
||||
| Web5 DWN | http://localhost:13000 |
|
||||
| Meshtastic | http://localhost:14403 |
|
||||
|
||||
## Port Conflict Resolution
|
||||
|
||||
@ -55,3 +79,10 @@ Or in the Archipelago config:
|
||||
[dev]
|
||||
port_offset = 10000
|
||||
```
|
||||
|
||||
## Port Ranges
|
||||
|
||||
- **Bitcoin/Lightning**: 8000-10000 range
|
||||
- **Web Services**: 3000-9000 range
|
||||
- **System Services**: 10000+ range
|
||||
- **Custom Apps**: 8000-9000 range
|
||||
|
||||
@ -5,11 +5,13 @@ This directory contains app manifest definitions for containerized applications
|
||||
## App Categories
|
||||
|
||||
### Bitcoin & Lightning
|
||||
- `bitcoin-core/` - Bitcoin Core full node
|
||||
- `bitcoin-core/` - Bitcoin Core full node (v24.0.0)
|
||||
- `lnd/` - Lightning Network Daemon
|
||||
- `core-lightning/` - Core Lightning (CLN)
|
||||
- `btcpay-server/` - BTCPay Server payment processor
|
||||
- `mempool/` - Mempool blockchain explorer
|
||||
- `lightning-stack/` - Complete Lightning implementation (v0.12.0)
|
||||
- `btcpay-server/` - BTCPay Server payment processor (v1.12.0)
|
||||
- `mempool/` - Mempool blockchain explorer (v2.5.0)
|
||||
- `fedimint/` - Federated Bitcoin minting (v0.3.0)
|
||||
|
||||
### Web5 & Decentralized Protocols
|
||||
- `nostr-rs-relay/` - High-performance Nostr relay (Rust)
|
||||
@ -17,23 +19,21 @@ This directory contains app manifest definitions for containerized applications
|
||||
- `web5-dwn/` - Decentralized Web Node
|
||||
- `did-wallet/` - Web5 wallet with DID support
|
||||
|
||||
### Self-Hosted Services
|
||||
- `home-assistant/` - Home automation (v2024.1.0)
|
||||
- `grafana/` - Monitoring and dashboards (v10.2.0)
|
||||
- `ollama/` - Local AI models (v0.1.0)
|
||||
- `searxng/` - Privacy-respecting search engine (v2024.1.0)
|
||||
- `onlyoffice/` - Office suite (v7.5.0)
|
||||
- `penpot/` - Design platform (v2.0.0)
|
||||
|
||||
### Custom Applications
|
||||
- `endurain/` - Endurain application platform (v1.0.0)
|
||||
- `morphos-server/` - MorphOS server (v1.0.0)
|
||||
|
||||
### Mesh Networking & Routing
|
||||
- `meshtastic/` - Meshtastic LoRa mesh networking
|
||||
- `router/` - Mesh routing and local network management
|
||||
- `cjdns/` - Encrypted mesh networking (cjdns)
|
||||
|
||||
### Self-Hosted Services
|
||||
- `homeassistant/` - Home automation
|
||||
- `grafana/` - Monitoring and dashboards
|
||||
- `searxng/` - Privacy-respecting search engine
|
||||
- `onlyoffice/` - Office suite
|
||||
- `ollama/` - Local AI models
|
||||
- `penpot/` - Design tool
|
||||
|
||||
### Other
|
||||
- `fedimint/` - Federated e-cash mint
|
||||
- `morphos-server/` - MorphOS server
|
||||
- `a-b/` - A to B protocol
|
||||
|
||||
## Manifest Format
|
||||
|
||||
@ -46,3 +46,25 @@ Each app has a `manifest.yml` file defining:
|
||||
- Network configuration
|
||||
|
||||
See `docs/app-manifest-spec.md` for the complete specification.
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Build All Apps
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
```
|
||||
|
||||
### Build Specific App
|
||||
|
||||
```bash
|
||||
./build.sh <app-id>
|
||||
```
|
||||
|
||||
### Development
|
||||
|
||||
See [DEVELOPMENT.md](./DEVELOPMENT.md) for development guide and [QUICKSTART.md](./QUICKSTART.md) for quick start instructions.
|
||||
|
||||
## Port Assignments
|
||||
|
||||
See [PORTS.md](./PORTS.md) for complete port mapping. All apps use unique ports and are automatically offset in development mode.
|
||||
|
||||
5
apps/ollama/Dockerfile
Normal file
5
apps/ollama/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
# Ollama - uses official image
|
||||
FROM ollama/ollama:latest
|
||||
|
||||
# Default configuration is in the image
|
||||
# No additional setup needed
|
||||
47
apps/ollama/manifest.yml
Normal file
47
apps/ollama/manifest.yml
Normal file
@ -0,0 +1,47 @@
|
||||
app:
|
||||
id: ollama
|
||||
name: Ollama
|
||||
version: 0.1.0
|
||||
description: Run large language models locally. Privacy-preserving AI on your node.
|
||||
|
||||
container:
|
||||
image: ollama/ollama:latest
|
||||
image_signature: cosign://...
|
||||
pull_policy: if-not-present
|
||||
|
||||
dependencies:
|
||||
- storage: 50Gi # Models can be large
|
||||
|
||||
resources:
|
||||
cpu_limit: 4
|
||||
memory_limit: 8Gi # LLMs need lots of RAM
|
||||
disk_limit: 50Gi
|
||||
|
||||
security:
|
||||
capabilities: []
|
||||
readonly_root: false # Ollama needs write access for models
|
||||
network_policy: isolated
|
||||
apparmor_profile: ollama
|
||||
|
||||
ports:
|
||||
- host: 11434
|
||||
container: 11434
|
||||
protocol: tcp # API
|
||||
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/lib/archipelago/ollama
|
||||
target: /root/.ollama
|
||||
options: [rw]
|
||||
|
||||
environment:
|
||||
- OLLAMA_HOST=0.0.0.0:11434
|
||||
- OLLAMA_KEEP_ALIVE=24h
|
||||
|
||||
health_check:
|
||||
type: http
|
||||
endpoint: http://localhost:11434
|
||||
path: /api/tags
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
5
apps/onlyoffice/Dockerfile
Normal file
5
apps/onlyoffice/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
# OnlyOffice - uses official image
|
||||
FROM onlyoffice/documentserver:7.5.0
|
||||
|
||||
# Default configuration is in the image
|
||||
# No additional setup needed
|
||||
47
apps/onlyoffice/manifest.yml
Normal file
47
apps/onlyoffice/manifest.yml
Normal file
@ -0,0 +1,47 @@
|
||||
app:
|
||||
id: onlyoffice
|
||||
name: OnlyOffice
|
||||
version: 7.5.0
|
||||
description: Office suite and document collaboration. Edit documents, spreadsheets, and presentations.
|
||||
|
||||
container:
|
||||
image: onlyoffice/documentserver:7.5.0
|
||||
image_signature: cosign://...
|
||||
pull_policy: if-not-present
|
||||
|
||||
dependencies:
|
||||
- storage: 10Gi
|
||||
|
||||
resources:
|
||||
cpu_limit: 4
|
||||
memory_limit: 4Gi
|
||||
disk_limit: 10Gi
|
||||
|
||||
security:
|
||||
capabilities: []
|
||||
readonly_root: false # OnlyOffice needs write access
|
||||
network_policy: isolated
|
||||
apparmor_profile: onlyoffice
|
||||
|
||||
ports:
|
||||
- host: 8088
|
||||
container: 80
|
||||
protocol: tcp # Web UI
|
||||
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/lib/archipelago/onlyoffice
|
||||
target: /var/www/onlyoffice/Data
|
||||
options: [rw]
|
||||
|
||||
environment:
|
||||
- JWT_ENABLED=false
|
||||
- JWT_SECRET=${ONLYOFFICE_JWT_SECRET}
|
||||
|
||||
health_check:
|
||||
type: http
|
||||
endpoint: http://localhost:8088
|
||||
path: /healthcheck
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
5
apps/penpot/Dockerfile
Normal file
5
apps/penpot/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
# Penpot - uses official image
|
||||
FROM penpot/penpot:latest
|
||||
|
||||
# Default configuration is in the image
|
||||
# No additional setup needed
|
||||
48
apps/penpot/manifest.yml
Normal file
48
apps/penpot/manifest.yml
Normal file
@ -0,0 +1,48 @@
|
||||
app:
|
||||
id: penpot
|
||||
name: Penpot
|
||||
version: 2.0.0
|
||||
description: Open-source design and prototyping platform. Design tools for teams.
|
||||
|
||||
container:
|
||||
image: penpot/penpot:latest
|
||||
image_signature: cosign://...
|
||||
pull_policy: if-not-present
|
||||
|
||||
dependencies:
|
||||
- storage: 10Gi
|
||||
|
||||
resources:
|
||||
cpu_limit: 4
|
||||
memory_limit: 4Gi
|
||||
disk_limit: 10Gi
|
||||
|
||||
security:
|
||||
capabilities: []
|
||||
readonly_root: true
|
||||
network_policy: isolated
|
||||
apparmor_profile: penpot
|
||||
|
||||
ports:
|
||||
- host: 8089
|
||||
container: 80
|
||||
protocol: tcp # Web UI
|
||||
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/lib/archipelago/penpot
|
||||
target: /app/data
|
||||
options: [rw]
|
||||
|
||||
environment:
|
||||
- PENPOT_PUBLIC_URI=http://localhost:8089
|
||||
- PENPOT_DATABASE_URI=postgresql://penpot:penpot@penpot-db:5432/penpot
|
||||
- PENPOT_REDIS_URI=redis://penpot-redis:6379
|
||||
|
||||
health_check:
|
||||
type: http
|
||||
endpoint: http://localhost:8089
|
||||
path: /api/health
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
5
apps/searxng/Dockerfile
Normal file
5
apps/searxng/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
# SearXNG - uses official image
|
||||
FROM searxng/searxng:2024.1.0
|
||||
|
||||
# Default configuration is in the image
|
||||
# No additional setup needed
|
||||
47
apps/searxng/manifest.yml
Normal file
47
apps/searxng/manifest.yml
Normal file
@ -0,0 +1,47 @@
|
||||
app:
|
||||
id: searxng
|
||||
name: SearXNG
|
||||
version: 2024.1.0
|
||||
description: Privacy-respecting metasearch engine. Search the web without tracking.
|
||||
|
||||
container:
|
||||
image: searxng/searxng:2024.1.0
|
||||
image_signature: cosign://...
|
||||
pull_policy: if-not-present
|
||||
|
||||
dependencies:
|
||||
- storage: 2Gi
|
||||
|
||||
resources:
|
||||
cpu_limit: 2
|
||||
memory_limit: 1Gi
|
||||
disk_limit: 2Gi
|
||||
|
||||
security:
|
||||
capabilities: []
|
||||
readonly_root: true
|
||||
network_policy: isolated
|
||||
apparmor_profile: searxng
|
||||
|
||||
ports:
|
||||
- host: 8888
|
||||
container: 8080
|
||||
protocol: tcp # Web UI
|
||||
|
||||
volumes:
|
||||
- type: bind
|
||||
source: /var/lib/archipelago/searxng
|
||||
target: /etc/searxng
|
||||
options: [rw]
|
||||
|
||||
environment:
|
||||
- SEARXNG_HOSTNAME=localhost
|
||||
- SEARXNG_BIND_ADDRESS=0.0.0.0:8080
|
||||
|
||||
health_check:
|
||||
type: http
|
||||
endpoint: http://localhost:8888
|
||||
path: /
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
@ -24,19 +24,18 @@ impl ApiHandler {
|
||||
})
|
||||
}
|
||||
|
||||
pub async fn handle_request<B>(&self, req: Request<B>) -> Result<Response<Full<Bytes>>>
|
||||
where
|
||||
B: http_body::Body<Data = Bytes> + Send + 'static,
|
||||
B::Error: std::fmt::Display,
|
||||
{
|
||||
let path = req.uri().path();
|
||||
let method = req.method();
|
||||
pub async fn handle_request(
|
||||
&self,
|
||||
req: Request<http_body_util::Incoming>,
|
||||
) -> Result<Response<Full<Bytes>>> {
|
||||
// Extract path and method before consuming req
|
||||
let path = req.uri().path().to_string();
|
||||
let method = req.method().clone();
|
||||
|
||||
// Convert Incoming body to bytes using http_body_util::BodyExt
|
||||
// Convert body to bytes using http_body_util::BodyExt
|
||||
let (parts, body) = req.into_parts();
|
||||
// hyper::body::Incoming implements http_body::Body, and BodyExt extends it
|
||||
use http_body_util::BodyExt;
|
||||
let collected = body.collect().await
|
||||
let collected: http_body_util::Collected<Bytes> = body.collect().await
|
||||
.map_err(|_e| anyhow::anyhow!("Failed to read body"))?;
|
||||
let body_bytes = collected.to_bytes();
|
||||
|
||||
@ -47,10 +46,10 @@ impl ApiHandler {
|
||||
|
||||
// Route requests
|
||||
match (method, path.as_str()) {
|
||||
(&Method::POST, "/rpc/v1") => {
|
||||
(Method::POST, "/rpc/v1") => {
|
||||
self.rpc_handler.handle(req_with_bytes).await
|
||||
}
|
||||
(&Method::GET, "/health") => {
|
||||
(Method::GET, "/health") => {
|
||||
Ok(Response::builder()
|
||||
.status(StatusCode::OK)
|
||||
.body(Full::new(Bytes::from("OK")))
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:84}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:84}, _>, TokioExecutor>
|
||||
@ -0,0 +1,2 @@
|
||||
hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>: hyper::service::service::Service<http::request::Request<hyper::body::incoming::Incoming>>
|
||||
hyper_util::server::conn::auto::Connection<'_, TokioIo<tokio::net::TcpStream>, hyper::service::util::ServiceFn<{closure@archipelago/src/server.rs:43:42: 43:52}, _>, TokioExecutor>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user