Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 98 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# Containers Configuration

## Overview
`containers.yml` defines LXC/Incus containers that run on the infrastructure. Each entry creates a development environment for a team member.

## Quick Start Workflow

### 1. Clone the Repository
```bash
git clone https://github.com/tinkerhub/infried.git
cd infried
```

### 2. Create a Feature Branch
```bash
git checkout -b "feat/add-member-NAME"
```
Replace `NAME` with the member's username (e.g., `feat/add-member-jasim`).

### 3. Update containers.yml
Edit `containers/containers.yml` and add the new container configuration (see section below).

### 4. Commit and Create PR
```bash
git add containers/containers.yml
git commit -m "feat: add container for member-NAME"
git push origin feat/add-member-NAME
```
Then create a pull request on GitHub.

---

## How to Add a Container

Copy this template and update the values:

```yaml
- name: username
bridge: incusbr-members
cpu: 4
memory: 4GB
disk: 5GB
ssh_port: 222X
user: username
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... full_key"
```
Comment on lines +37 to +46
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Template naming pattern inconsistent with examples.

The template shows name: username but actual entries and the example on lines 87-95 use the member-<username> pattern. Update the template for consistency.

📝 Proposed fix
 ```yaml
-- name: username
+- name: member-username
   bridge: incusbr-members
   cpu: 4
   memory: 4GB
   disk: 5GB
   ssh_port: 222X
   user: username
   ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5... full_key"
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @README.md around lines 37 - 46, Update the YAML template's name field to use
the member- pattern for consistency with the examples: change the
placeholder value for the name key (currently "username") to follow the
member- naming convention (e.g., "member-username") while leaving
other keys (bridge, cpu, memory, disk, ssh_port, user, ssh_key) unchanged.


</details>

<!-- fingerprinting:phantom:medusa:ocelot:74156e99-13f6-444e-b453-c5ddaa10f139 -->

<!-- This is an auto-generated comment by CodeRabbit -->


## Parameters

| Parameter | Description | Example |
|-----------|-------------|---------|
| **name** | Container identifier (unique) | `member-sexy-jasim` |
| **bridge** | Network bridge to connect | `incusbr-members` (standard, dont change unless uk what ur doing ) |
Comment on lines +52 to +53
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use professional language and examples in documentation.

  • Line 52: The example name member-sexy-jasim is inappropriate for official documentation. Use a neutral example like member-jasim.
  • Line 53: The phrase "dont change unless uk what ur doing" is too informal. Consider rephrasing.
📝 Proposed fix
-| **name** | Container identifier (unique) | `member-sexy-jasim` |
-| **bridge** | Network bridge to connect | `incusbr-members` (standard, dont change unless uk what ur doing ) |
+| **name** | Container identifier (unique) | `member-jasim` |
+| **bridge** | Network bridge to connect | `incusbr-members` (standard for members, do not change unless required) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| **name** | Container identifier (unique) | `member-sexy-jasim` |
| **bridge** | Network bridge to connect | `incusbr-members` (standard, dont change unless uk what ur doing ) |
| **name** | Container identifier (unique) | `member-jasim` |
| **bridge** | Network bridge to connect | `incusbr-members` (standard for members, do not change unless required) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 52 - 53, Replace the unprofessional example container
name "member-sexy-jasim" with a neutral example like "member-jasim" in the table
and update the bridge description text for **bridge** (`incusbr-members`) to a
professional phrasing such as "incusbr-members (standard; do not change unless
you know what you are doing)" so the documentation uses neutral examples and
clear, formal language.

| **cpu** | CPU cores allocated | `4` |
| **memory** | RAM allocation | `4GB` |
| **disk** | Storage space | `5GB` |
| **ssh_port** | VPS port for SSH access | `2223` (must be unique) |
| **user** | Linux username inside container | `jasim` |
| **ssh_key** | Public SSH key (ed25519 preferred) | Full key string |

## Getting SSH Key

if you dont have a ssh key pair, generate it via, the command below and copy the **public key**:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix capitalization and grammar.

The sentence should start with a capital letter and include proper punctuation.

📝 Proposed fix
-if you dont have a ssh key pair, generate it via, the command below and copy the **public key**:
+If you don't have an SSH key pair, generate one using the command below and copy the **public key**:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if you dont have a ssh key pair, generate it via, the command below and copy the **public key**:
If you don't have an SSH key pair, generate one using the command below and copy the **public key**:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 63, The README sentence "if you dont have a ssh key pair,
generate it via, the command below and copy the **public key**:" has
capitalization and grammar errors; update it to properly capitalize the first
word, use "don't", "an SSH key pair", remove the stray comma after "via", and
use clearer phrasing such as: "If you don't have an SSH key pair, generate one
using the command below and copy the **public key**:" to replace the original
sentence.

```bash
ssh-keygen -t ed25519 -C "user@domain.com"
cat ~/.ssh/id_ed25519.pub
```

Copy the entire output starting with `ssh-ed25519`.

## Rules

- **Port numbers must be unique** — no duplicates
- **Names must be unique** — used as container identifier
- **Bridge should be** `incusbr-members` for member containers
- **Indentation matters** — YAML format is strict (use spaces, not tabs)

## Example: Adding a New Member

User provides:
- Name: `jasi`
- SSH key: `ssh-ed25519 AAAAC3NzaC1lZDI1...`
- Preferred port: `2225`

Add to `containers.yml`:
```yaml
- name: member-jasi
bridge: incusbr-members
cpu: 4
memory: 4GB
disk: 5GB
ssh_port: 2225
user: jasi
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1..."
```
Comment on lines +83 to +95
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Example port conflicts with actual container entry.

The example uses port 2225, which is now assigned to member-devadath in containers/containers.yml. This could confuse contributors about port uniqueness. Consider using a different example port like 2226.

📝 Proposed fix
 User provides:
 - Name: `jasi`
 - SSH key: `ssh-ed25519 AAAAC3NzaC1lZDI1...`
-- Preferred port: `2225`
+- Preferred port: `2226`

 Add to `containers.yml`:
 ```yaml
 - name: member-jasi
   bridge: incusbr-members
   cpu: 4
   memory: 4GB
   disk: 5GB
-  ssh_port: 2225
+  ssh_port: 2226
   user: jasi
   ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1..."
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @README.md around lines 83 - 95, The README example uses ssh_port: 2225 which
conflicts with the existing container entry for member-devadath; update the
example YAML in README (the member-jasi block) to use a different port (e.g.,
ssh_port: 2226) so ports remain unique and avoid confusion—modify the ssh_port
value in the example member-jasi block accordingly.


</details>

<!-- fingerprinting:phantom:medusa:ocelot:74156e99-13f6-444e-b453-c5ddaa10f139 -->

<!-- This is an auto-generated comment by CodeRabbit -->


Then commit and push your branch to create a pull request.

16 changes: 12 additions & 4 deletions containers/containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,20 @@
user: nihal2
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJE+GRo3Is1QsbH4n6hlqiif9gV6Ncaby6E3QPsOLuAd tharaam"

- name: Devadath
- name: Devadath
bridge: incusbr-members
cpu: 4
memory: 4GB
disk: 5GB
ssh_port: 2224
ssh_port: 2225
user: Devadath
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPnwdhXo6fnWErGyGQSRM7tots8Y6tbEjqsuDjJ5Bpn devadaths3@gmail.com
"
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFPnwdhXo6fnWErGyGQSRM7tots8Y6tbEjqsuDjJ5Bpn devadaths3@gmail.com"

- name: tinkerspace
bridge: incusbr-members
cpu: 4
memory: 6GB
disk: 10GB
ssh_port: 2228
user: rishi
ssh_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFEt8v0Fd9DD0ONfueo+sL/oWHM/60qcO04hUBF2vox7"