Skip to content

Commit

Permalink
Guides 2 (#426)
Browse files Browse the repository at this point in the history
add: guides
  • Loading branch information
oiclid authored Jan 2, 2025
1 parent 250aad1 commit 6f870b2
Show file tree
Hide file tree
Showing 81 changed files with 9,823 additions and 197 deletions.
94 changes: 78 additions & 16 deletions src/content/Docs/_sequence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,27 +83,56 @@ export const docsSequence = [
{ label: "AI Art" },
{ label: "Jupyter Notebook" },
{ label: "Text-Generation-WebUI" },
{ label: "Mistral 7B"}
{ label: "Mistral 7B"},
{ label: "Skypilot"},
{ label: "H2O"},
{ label: "H2O Flow"},
{ label: "H2O LLM Studio"},
{ label: "h2oGPT"},
{ label: "FlowiseAI"},
{ label: "Machine Learning Environments"},
{ label: "Deeplearning4j"},
{ label: "Keras"},
{ label: "Haystack"},
{ label: "AnythingLLM"},
{ label: "LocalAI"},
{ label: "LangFlow"},
{ label: "TensorFlow"},
{ label: "PyTorch"},
],
},
{
label: "Deployments",
subItems: [
{ label: "TLS Termination of Akash Deployments" },
{ label: "Multi-Tiered Deployment" },
{ label: "Ruby on Rails with Sia and Auth0" },
{ label: "Jackal S3 Gateway" },
{ label: "Caddy"},
{ label: "Nginx"},
{ label: "Apache HTTP Server"},
{ label: "LocalStack"},
],
},
{
label: "Tooling",
subItems: [
{ label: "Provider Utilization Dashboard" },
{ label: "Akash Playground" },
{ label: "Provider Utilization Dashboard"},
{ label: "Radicle" },
{ label: "PostgreSQL restore/backup" },
{ label: "Provider Utilization Dashboard" },
{ label: "Akash Playground" },
{ label: "Kong"},
{ label: "Jenkins"},
{ label: "Traefik"},
{ label: "Mautic"},
{ label: "RabbitMQ"},
{ label: "JetBrains Hub"},
{ label: "EMQX"},
{ label: "Apache Flink"},
{ label: "Lightstreamer"},
{ label: "RabbitMQ"},
{ label: "NATS"},
{ label: "Apache Airflow"},
{ label: "Apache Kafka"},
{ label: "Apache Storm"},
],
},
{
Expand All @@ -123,7 +152,7 @@ export const docsSequence = [
{ label: "Waku" },
{ label: "qBittorrent" },
{ label: "Discourse" },
{ label: "Invidious" },
{ label: "Invidious" },
],
},
{
Expand All @@ -132,41 +161,74 @@ export const docsSequence = [
{ label: "JSON Server" },
{ label: "Dolt" },
{ label: "CouchDB" },
{ label: "PostgreSQL restore/backup" },
{ label: "MariaDB"},
{ label: "PostgreSQL" },
{ label: "ArangoDB"},
{ label: "OrientDB"},
{ label: "MongoDB"},
{ label: "Neo4j"},
],
},
{
label: "Data Visualizations",
label: "Hosting",
subItems:[
{ label: "Caddy"},
{ label: "WordPress"},
{ label: "Discourse"},
{ label: "Ghost"},
]
},
{
label: "Data Analysis",
subItems: [
{ label: "Redash" },
{ label: "Dash" },
{ label: "Metabase" },
{ label: "KNIME"},
{ label: "Dataiku"},
{ label: "Apache Superset"},
{ label: "Rstudio"},
{ label: "Apache Druid"},
{ label: "Grafana"},
{ label: "OpenSearch"},
{ label: "Matomo"},
{ label: "JupyterHub"},
{ label: "JATOS"},
],
},
{
label: "Frameworks",
subItems: [
{ label: "Django" },
{ label: "Flask"},
{ label: "Next.js" },
{ label: "React" },
{ label: "Astro" },
{ label: "Angular" },
{ label: "Django" },
{ label: "Nue JS"},
{ label: "Gatsby"},
{ label: "NextJS"},
{ label: "Vue.js"},
],
},
{
label: "Benchmarkings",
subItems: [{ label: "Fast.com" }],
},
{
label: "Apps",
label: "Games",
subItems: [
{ label: "Waku" },
{ label: "qBittorrent" },
{ label: "Discourse" },
{ label: "Invidious" },
],
{ label: "Minecraft"},
]
},
{
label: "Science",
subItems:[
{ label: "GeoNetwork"},
{ label: "GNU Octave"},
{ label: "MATLAB"}
]
}
],
},
{
Expand Down
Binary file added src/content/Docs/assets/h20llm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
153 changes: 153 additions & 0 deletions src/content/Docs/guides/apps/photoprism/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
---
categories: ["Guides"]
tags: ["Apps", "Photo Management",]
weight: 1
title: "Deploying PhotoPrism on Akash"
linkTitle: "PhotoPrism"
---


### **What is PhotoPrism?**
PhotoPrism is a self-hosted AI-powered photo management solution. It allows users to organize, browse, and share their photo collections using modern technology like TensorFlow for image classification and facial recognition. Features include:

- **Automatic Organization:** Tagging, categorization, and duplicate detection.
- **Privacy-Oriented:** Self-hosted to ensure your photos remain private.
- **Powerful Search:** Use keywords, locations, or metadata to find images quickly.
- **AI Capabilities:** Facial recognition, object detection, and more.

It is a popular choice for individuals who want to manage their photo libraries without relying on cloud platforms like Google Photos.

---

## **Steps to Deploy PhotoPrism on Akash**

---

### **Prerequisites**
1. **Akash CLI Installed**: Ensure you have the Akash command-line interface installed and configured. You should have an account with sufficient $AKT tokens.
2. **SDL Template**: The deployment requires an SDL (Service Definition Language) file for specifying deployment details.
3. **Akash Wallet**: Your wallet should be funded with $AKT to pay for the deployment.

---

### **1. Create a Storage Volume**
PhotoPrism requires persistent storage to save photos and metadata. Create a storage volume on Akash using Akash's persistent storage feature.

```
---
version: "2.0"
services:
photoprism:
image: photoprism/photoprism
env:
PHOTOPRISM_ADMIN_PASSWORD: "yourpassword"
PHOTOPRISM_DEBUG: "true"
expose:
- port: 2342
as: 80
to:
- global
resources:
cpu:
units: 1000m
memory:
size: 512Mi
storage:
size: 10Gi
profiles:
compute:
- "aksh-default"
placement:
attributes:
region: us-west
signedBy:
anyOf:
- "akash1..."
profiles:
compute:
aksh-default:
resources:
cpu:
units: 1000m
memory:
size: 512Mi
storage:
size: 10Gi
deployment:
photoprism:
profile: aksh-default
count: 1
```

---

### **2. Update the SDL File**

1. Replace `PHOTOPRISM_ADMIN_PASSWORD` with a secure admin password.
2. Adjust the `storage` size according to your photo library requirements.
3. Update the `region` under the `placement` section if you prefer a specific geographic location for your deployment.
4. Save the file as `deploy.yaml`.
---

### **3. Deploy PhotoPrism on Akash**

1. **Validate the SDL File:**

Run the following command to validate your SDL file:
```
akash tx deployment create --from <wallet_name> --node <akash_node_url>
```

2. **Submit the Deployment:**

After validation, submit your deployment to the Akash network:
```
akash tx deployment create deploy.yaml
```

3. **Query Deployment Status:**

Check the status of your deployment:
```
akash query deployment list --owner <wallet_address>
```

---

### **4. Access the PhotoPrism Web Interface**

1. After the deployment is successful, note the external endpoint provided by Akash.
2. Open a browser and navigate to `http://<external_endpoint>` to access the PhotoPrism UI.
3. Log in using the admin credentials set in the SDL file.

---

### **5. Upload and Organize Photos**

- Upload your photos to PhotoPrism via the web interface.
- Let the AI-powered system analyze and organize your photo library.

---

## **Customizing PhotoPrism**

- **Environment Variables:** Adjust configurations like storage paths, database options, or feature toggles by modifying the environment variables in the SDL file.
- **Resource Scaling:** Increase or decrease CPU, memory, or storage resources in the SDL file based on your needs.

---

### **Costs**
The cost of deploying PhotoPrism on Akash will depend on:
- CPU and memory resources allocated.
- Storage volume size.
- Rental prices on Akash's marketplace.

To estimate costs, query the Akash marketplace for current bids:
```
akash query market bid list
```

---

By deploying PhotoPrism on Akash, you get a secure, private, and scalable solution to manage your photo library efficiently without relying on centralized cloud services.
Loading

0 comments on commit 6f870b2

Please sign in to comment.