chore: update repository structure and migrate to new remote
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
131
AGENTS.md
131
AGENTS.md
@@ -1,118 +1,33 @@
|
||||
# AIOS-Public Agents
|
||||
We use GItea exclusively as our docker registry, CI system, git repository and any other package repository needs.
|
||||
Use conventional commits. Make them beautiful.
|
||||
Commit frequently and use atomic commits
|
||||
|
||||
This document tracks the various agents, tools, and systems used in the AIOS-Public project.
|
||||
A project may have a collab/rules directory with files such as
|
||||
|
||||
## Documentation Tools
|
||||
SECURITY.md
|
||||
RELEASE.md
|
||||
GITFLOW.md
|
||||
|
||||
### RCEO-AIOS-Public-Tools-DocMaker Container Family
|
||||
Those need to be followed for the project.
|
||||
|
||||
**Purpose**: Documentation generation containers with multiple document conversion tools, organized in a layered architecture.
|
||||
Otherwise use best common practices for project/release management, security, compliance, accesibility, internationaliztion etc.
|
||||
|
||||
**Container/Stack Names**:
|
||||
- RCEO-AIOS-Public-Tools-DocMaker-Base: Base documentation environment
|
||||
- RCEO-AIOS-Public-Tools-DocMaker-Light: Lightweight documentation tools (fast-starting)
|
||||
- RCEO-AIOS-Public-Tools-DocMaker-Full: Full documentation with LaTeX-full
|
||||
- RCEO-AIOS-Public-Tools-DocMaker-Computational: All documentation tools plus computational tools (R, Python, Jupyter, Octave)
|
||||
|
||||
**Technology Stack**:
|
||||
- Base: Debian Bookworm slim
|
||||
- Bash
|
||||
- Python 3
|
||||
- Node.js
|
||||
- Rust (with Cargo)
|
||||
- Pandoc
|
||||
- LaTeX (varies by container: light packages in base/full in full)
|
||||
- mdBook (installed via Cargo)
|
||||
- mdbook-pdf (installed via Cargo)
|
||||
- Typst
|
||||
- Marp CLI
|
||||
- Wandmalfarbe pandoc-latex-template: Beautiful Eisvogel LaTeX template for professional PDF generation
|
||||
- Spell/Grammar checking:
|
||||
- Hunspell (with en-US dictionary)
|
||||
- Aspell (with en dictionary)
|
||||
- Vale (style and grammar linter)
|
||||
- Reading time estimation: mdstat
|
||||
- Additional text processing tools
|
||||
- Computational tools in Computational container:
|
||||
- R programming language
|
||||
- Python scientific stack (pandas, numpy, matplotlib, scipy)
|
||||
- Jupyter notebooks
|
||||
- GNU Octave
|
||||
- bc (command-line calculator)
|
||||
Usew the git details found in collab/.env , never attribute git commits to a non human or system entity.
|
||||
Don't do any git push, just commit to the local repository.
|
||||
Keep the top level of the repository clean (collab and output directories only). Anything needed for CI/CD
|
||||
|
||||
**Usage**:
|
||||
- Use Light container for quick documentation tasks (COO mode)
|
||||
- Use Full container for complex document generation (COO mode)
|
||||
- Use Computational container for data analysis and R&D work (CTO mode)
|
||||
- Base container serves as foundation for other containers
|
||||
The AI manages the output directory as it sees fit. The exact structure depends on the project, but generally it would be something like:
|
||||
|
||||
**Docker Configuration**:
|
||||
- Located in the `Docker/` directory
|
||||
- Each container has its own subdirectory with Dockerfile and docker-compose.yml
|
||||
- Maps the project root directory to `/workspace` inside the container
|
||||
- Uses UID/GID mapping for proper file permissions across environments
|
||||
- Can be run with `docker-compose up` from each container's directory
|
||||
output/
|
||||
tests/
|
||||
docs/
|
||||
code/
|
||||
frontend/
|
||||
backend/
|
||||
etc
|
||||
|
||||
**Container Usage Map**:
|
||||
- Light container: COO mode, quick documentation tasks (CV, proposals, governance docs)
|
||||
- Full container: COO mode, complex document generation with LaTeX-full
|
||||
- Computational container: CTO mode, data analysis and R&D work (R, Python, Jupyter)
|
||||
The human and the AI communicate in the collab/ directory tree.
|
||||
Use a strict workflow of
|
||||
|
||||
**Commands to run**:
|
||||
|
||||
# Using the wrapper script (recommended - handles UID/GID automatically):
|
||||
```bash
|
||||
# Build and start the lightweight container (COO mode)
|
||||
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Build and start the full documentation container (COO mode)
|
||||
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Build and start the computational container (CTO mode)
|
||||
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Run commands in containers with automatic user mapping:
|
||||
./docker-compose-wrapper.sh run docmaker-light [command] # Light container
|
||||
./docker-compose-wrapper.sh run docmaker-full [command] # Full container
|
||||
./docker-compose-wrapper.sh run docmaker-computational [command] # Computational container
|
||||
```
|
||||
|
||||
# Using docker-compose directly (requires manual environment variables):
|
||||
```bash
|
||||
# Set environment variables for proper file permissions
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
|
||||
# Build and start containers
|
||||
cd Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
docker-compose up --build
|
||||
|
||||
# Example usage of documentation tools with wrapper script:
|
||||
|
||||
# Spell checking with hunspell
|
||||
./docker-compose-wrapper.sh run docmaker-full hunspell -d en_US document.md
|
||||
|
||||
# Create timeline with Markwhen (not currently available)
|
||||
# This will be enabled when Markwhen installation issue is resolved
|
||||
# ./docker-compose-wrapper.sh run docmaker-full markwhen input.mw --output output.html
|
||||
|
||||
# Grammar/style checking with Vale
|
||||
./docker-compose-wrapper.sh run docmaker-full vale document.md
|
||||
|
||||
# Reading time estimation
|
||||
./docker-compose-wrapper.sh run docmaker-full python3 -m mdstat document.md
|
||||
|
||||
# Run R analysis (in computational container)
|
||||
./docker-compose-wrapper.sh run docmaker-computational Rscript analysis.R
|
||||
|
||||
# Run Python analysis (in computational container)
|
||||
./docker-compose-wrapper.sh run docmaker-computational python analysis.py
|
||||
|
||||
# Check spelling with aspell
|
||||
./docker-compose-wrapper.sh run docmaker-full aspell -c document.md
|
||||
```
|
||||
|
||||
**User Management**: All containers run as non-root user `ReachableCEO-Tools` with UID/GID mapping from the host environment to ensure proper file permissions.
|
||||
questions ->
|
||||
141
AUDIT1.md
Normal file
141
AUDIT1.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# GUIDEBOOK Audit #1
|
||||
|
||||
Date: October 16, 2025
|
||||
|
||||
## Summary
|
||||
Comprehensive review of the GUIDEBOOK directory and its contents conducted to identify areas for improvement and optimization.
|
||||
|
||||
## TODO Tracking
|
||||
|
||||
### Completed
|
||||
- [x] Fixed typos in AboutMe.md
|
||||
- [x] Updated AgentRules.md to remove reference to collab directory and improve formatting
|
||||
- [x] Created GUIDEBOOK/README.md as central navigation document
|
||||
|
||||
### In Progress
|
||||
- [ ] Enhance StartHere.md with more structured guidance
|
||||
- [ ] Standardize formatting across all GUIDEBOOK files
|
||||
- [ ] Add last-updated timestamps to documents
|
||||
- [ ] Consider implementing document status tracking
|
||||
|
||||
### Deferred
|
||||
- [ ] Update TSYS.md with current business entity information (will be updated later with detailed entity info)
|
||||
|
||||
## Files Reviewed
|
||||
1. `AboutMe.md` - Personal information and background
|
||||
2. `AgentRules.md` - Operational guidelines for agents
|
||||
3. `ArchitecturalApproach.md` - Technical architecture patterns
|
||||
4. `StartHere.md` - Onboarding and repository purpose
|
||||
5. `TSYS.md` - Business entity information
|
||||
|
||||
## Analysis and Improvement Suggestions
|
||||
|
||||
### 1. Overall Structure & Organization
|
||||
**Current State**: The GUIDEBOOK contains 5 files with different purposes but lacks a cohesive structure or navigation system.
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Add a main `README.md` or `INDEX.md` file in the GUIDEBOOK directory that serves as a table of contents and entry point
|
||||
- Create cross-links between related documents
|
||||
- Consider organizing files by function (Personal, Technical, Business) if the number of files grows
|
||||
|
||||
### 2. AboutMe.md - Personal Information
|
||||
**Issues**:
|
||||
- Contains outdated information (relocation to Raleigh NC in April 2026 is now in the past)
|
||||
- Informal tone and formatting
|
||||
- Missing important professional details
|
||||
- Contains typos ("entrepenuer", "soverignity", "streamlne")
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Standardize formatting with consistent headers
|
||||
- Update or remove time-sensitive information
|
||||
- Add professional skills, technical expertise, and areas of focus
|
||||
- Include contact methods or communication preferences
|
||||
- Add a section on current projects or focus areas
|
||||
- Proofread and fix typos
|
||||
|
||||
### 3. AgentRules.md - Operational Guidelines
|
||||
**Strengths**:
|
||||
- Clear workflow pattern (Question -> Proposal -> Plan -> Prompt -> Implementation)
|
||||
- Good technical guidelines for Docker containers
|
||||
- Clear expectations about communication style
|
||||
|
||||
**Issues**:
|
||||
- Mixed formatting and inconsistent structure
|
||||
- Contains a rule about the collab directory that is now removed
|
||||
- Some rules are quite detailed while others are brief
|
||||
- The title "This file is rules for you to follow" is informal
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Restructure as a proper markdown document with clear sections
|
||||
- Update the rules to reflect the current architecture (remove collab reference)
|
||||
- Add more specific examples where needed
|
||||
- Create a more professional title like "Agent Interaction Guidelines"
|
||||
- Possibly break this into multiple focused documents if it grows larger
|
||||
- Add sections on error handling, rollback procedures, and testing expectations
|
||||
|
||||
### 4. ArchitecturalApproach.md - Technical Architecture
|
||||
**Strengths**:
|
||||
- Well-structured with clear sections
|
||||
- Comprehensive coverage of architectural principles
|
||||
- Good technical details about security and operations
|
||||
|
||||
**Issues**:
|
||||
- Could benefit from more specific examples
|
||||
- Some sections could be expanded with implementation details
|
||||
- Could include more discussion of trade-offs or considerations
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Add diagrams or visual representations where helpful
|
||||
- Include specific examples of good vs. bad implementations
|
||||
- Add sections on monitoring, logging, and observability
|
||||
- Include guidance on when to use each architectural pattern
|
||||
- Add a section on migration patterns for existing systems
|
||||
|
||||
### 5. StartHere.md - Onboarding Guide
|
||||
**Strengths**:
|
||||
- Clear explanation of the repository's purpose as a template
|
||||
- Good metaphor of a "home directory" for project launch
|
||||
|
||||
**Issues**:
|
||||
- Could be more comprehensive in terms of onboarding
|
||||
- Lacks specific instructions on next steps
|
||||
- Could benefit from a more structured approach
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Add a step-by-step onboarding process
|
||||
- Include links to important resources
|
||||
- Add information about repository structure and navigation
|
||||
- Include guidelines on when and how to copy/clone the template
|
||||
- Add troubleshooting section for common setup issues
|
||||
|
||||
### 6. TSYS.md - Business Information
|
||||
**Issues**:
|
||||
- Contains outdated information (2026 dates are now in the past)
|
||||
- Complex organizational structure that's hard to follow
|
||||
- Technical jargon that may not be clear to all readers
|
||||
- Formatting needs improvement for readability
|
||||
|
||||
**Suggested Improvements**:
|
||||
- Update or remove time-sensitive information
|
||||
- Create a clearer organizational chart or hierarchy
|
||||
- Add a glossary of terms for the various entities
|
||||
- Include mission statement and core values more prominently
|
||||
- Add timelines for current initiatives and status updates
|
||||
- Simplify the explanation of the digital divide solution
|
||||
|
||||
### 7. Cross-cutting Improvements
|
||||
**Consistency**:
|
||||
- Standardize the format and style across all GUIDEBOOK files
|
||||
- Use consistent header levels and formatting
|
||||
- Implement a consistent terminology throughout
|
||||
- Consider implementing versioning for important policy documents
|
||||
|
||||
**Maintainability**:
|
||||
- Add last-updated timestamps to each document
|
||||
- Create a document for change management procedures
|
||||
- Consider implementing document status (draft, active, deprecated)
|
||||
|
||||
**Integration**:
|
||||
- Add cross-references between related documents
|
||||
- Create a central index or navigation system
|
||||
- Consider linking to external resources or related documents
|
||||
15
AboutMe.md
Normal file
15
AboutMe.md
Normal file
@@ -0,0 +1,15 @@
|
||||
My full name is Charles N Wyble. I use the online handle @ReachableCEO.
|
||||
I am a strong believer in digital data sovereignty. I am a firm practitioner of self hosting (using Cloudron on a netcup VPS and soon Coolify on another Cloudron VPS).
|
||||
I am 41 years old.
|
||||
I am a Democrat and believe strongly in the rule of law and separation of powers.
|
||||
I actively avoid the media.
|
||||
I am a solo entrepreneur creating an ecosystem of entities called TSYS Group. (Please see TSYS.md for more on that)
|
||||
My professional background is in production technical operations since 2002.
|
||||
I use many command line AI agents (Codex, Coder, Qwen, Gemini) and wish to remain agent agnostic at all times.
|
||||
I am located in the United States of America. As of October 2025 I am located in central Texas.
|
||||
I will be relocating to Raleigh North Carolina in April 2026.
|
||||
I want to streamline my life using AI and relying on it for all aspects of my professional, knowledge worker actions.
|
||||
I prefer relaxed but professional engagement and don't want to be flattered.
|
||||
|
||||
---
|
||||
*Last updated: October 16, 2025*
|
||||
@@ -1,26 +1,35 @@
|
||||
This file is rules for you to follow
|
||||
# Agent Interaction Guidelines
|
||||
|
||||
This document outlines the operational guidelines for AI agents working within the AIOS-Public system.
|
||||
|
||||
Always refer to me as Charles. Do not ever refer to me as "the human" or "the user" please.
|
||||
Do not be a sychophant
|
||||
Avoid fluff in your responses
|
||||
## Personal Interaction Guidelines
|
||||
|
||||
Use this pattern for workflows:
|
||||
Always refer to me as Charles. Do not ever refer to me as "the human" or "the user" please.
|
||||
Do not be a sycophant.
|
||||
Avoid fluff in your responses.
|
||||
|
||||
Question -> Proposal -> Plan -> Prompt -> Implementation
|
||||
## Workflow Pattern
|
||||
|
||||
Use this pattern for all workflows:
|
||||
|
||||
**Question -> Proposal -> Plan -> Prompt -> Implementation**
|
||||
|
||||
Expanding on that:
|
||||
## Technical Guidelines
|
||||
|
||||
Additional Rules:
|
||||
### Docker Container Management
|
||||
- When working with Docker containers, minimize root usage as much as possible. Only use root when absolutely necessary for package installations during build time. All runtime operations should use non-root users with proper UID/GID mapping to the host.
|
||||
- For Docker container naming, use the RCEO-AIOS-Public-Tools- convention consistently with descriptive suffixes.
|
||||
- Create thin wrapper scripts that detect and handle UID/GID mapping to ensure file permissions work across any host environment.
|
||||
|
||||
### Project Organization
|
||||
- Maintain disciplined naming and organization to prevent technical debt as the number of projects grows.
|
||||
- Keep the repository root directory clean. Place all project-specific files and scripts in appropriate subdirectories rather than at the top level.
|
||||
- Follow the architectural approach: layered container architecture (base -> specialized layers), consistent security patterns (non-root user with UID/GID mapping), same operational patterns (wrapper scripts), and disciplined naming conventions.
|
||||
|
||||
### Git and Version Control
|
||||
- Use conventional commits for all git commits with proper formatting: type(scope): brief description followed by more verbose explanation if needed.
|
||||
- Commit messages should be beautiful and properly verbose, explaining what was done and why.
|
||||
- Use the LLM's judgment for when to push and tag - delegate these decisions based on the significance of changes.
|
||||
- All projects should include a collab/ directory with subdirectories: questions, proposals, plans, prompts, and audit.
|
||||
- Follow the architectural approach: layered container architecture (base -> specialized layers), consistent security patterns (non-root user with UID/GID mapping), same operational patterns (wrapper scripts), and disciplined naming conventions.
|
||||
|
||||
---
|
||||
*Last updated: October 16, 2025*
|
||||
@@ -1,86 +0,0 @@
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
# Avoid prompts from apt
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install base packages
|
||||
RUN apt-get update && apt-get install -y \
|
||||
bash \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
python3 \
|
||||
python3-pip \
|
||||
nodejs \
|
||||
npm \
|
||||
build-essential \
|
||||
sudo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Create symbolic link for python
|
||||
RUN ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
# Install Rust (for root - will be accessible to user)
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||
|
||||
# Install Pandoc
|
||||
RUN apt-get update && apt-get install -y \
|
||||
pandoc \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install lightweight LaTeX
|
||||
RUN apt-get update && apt-get install -y \
|
||||
texlive-latex-base \
|
||||
texlive-fonts-recommended \
|
||||
texlive-fonts-extra \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install mdBook and mdbook-pdf using cargo
|
||||
RUN /root/.cargo/bin/cargo install --root /usr/local mdbook mdbook-pdf
|
||||
|
||||
# Install Typst
|
||||
RUN curl -L https://github.com/typst/typst/releases/latest/download/typst-x86_64-unknown-linux-musl.tar.xz \
|
||||
| tar xJ -C /tmp && cp /tmp/typst-x86_64-unknown-linux-musl/typst /usr/local/bin && chmod +x /usr/local/bin/typst
|
||||
|
||||
# Install Marp CLI
|
||||
RUN npm install -g @marp-team/marp-cli
|
||||
|
||||
# Install Wandmalfarbe pandoc-latex-template for beautiful PDF generation
|
||||
RUN git clone --depth 1 https://github.com/Wandmalfarbe/pandoc-latex-template.git /tmp/pandoc-latex-template && \
|
||||
mkdir -p /root/.local/share/pandoc/templates && \
|
||||
# Find and copy any .latex template files to the templates directory
|
||||
find /tmp/pandoc-latex-template -name "*.latex" -exec cp {} /root/.local/share/pandoc/templates/ \; && \
|
||||
# Also install to system-wide location for all users
|
||||
mkdir -p /usr/share/pandoc/templates && \
|
||||
find /tmp/pandoc-latex-template -name "*.latex" -exec cp {} /usr/share/pandoc/templates/ \; && \
|
||||
rm -rf /tmp/pandoc-latex-template
|
||||
|
||||
# Install spell/grammar checking tools
|
||||
RUN apt-get update && apt-get install -y \
|
||||
hunspell \
|
||||
hunspell-en-us \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install vale for advanced style and grammar checking
|
||||
RUN curl -L https://github.com/errata-ai/vale/releases/download/v3.12.0/vale_3.12.0_Linux_64-bit.tar.gz \
|
||||
| tar xz -C /tmp && cp /tmp/vale /usr/local/bin && chmod +x /usr/local/bin/vale
|
||||
|
||||
# Install text statistics tool for reading time estimation
|
||||
RUN pip3 install --break-system-packages mdstat textstat
|
||||
|
||||
# Install additional text processing tools
|
||||
RUN apt-get update && apt-get install -y \
|
||||
aspell \
|
||||
aspell-en \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Add entrypoint script
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh
|
||||
|
||||
# Create a working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Use the entrypoint script to handle user creation
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
@@ -1,109 +0,0 @@
|
||||
# RCEO-AIOS-Public-Tools-DocMaker-Base Container
|
||||
|
||||
This container is part of the AIOS-Public project and provides a base documentation generation environment.
|
||||
|
||||
## Overview
|
||||
|
||||
The RCEO-AIOS-Public-Tools-DocMaker-Base container is designed for lightweight documentation generation tasks. It includes a range of tools for creating, converting, and processing documentation in various formats without heavy dependencies like full LaTeX.
|
||||
|
||||
## Tools Included
|
||||
|
||||
### Core Tools
|
||||
- **Base OS**: Debian Bookworm slim
|
||||
- **Shell**: Bash
|
||||
- **Programming Languages**:
|
||||
- Python 3
|
||||
- Node.js
|
||||
- Rust (with Cargo)
|
||||
|
||||
### Documentation Generation
|
||||
- **Pandoc**: Universal document converter
|
||||
- **Wandmalfarbe pandoc-latex-template**: Beautiful Eisvogel LaTeX template for professional PDFs
|
||||
- **mdBook**: Create books from Markdown files
|
||||
- **mdbook-pdf**: PDF renderer for mdBook
|
||||
- **Typst**: Modern typesetting system
|
||||
- **Marp CLI**: Create presentations from Markdown
|
||||
|
||||
### LaTeX
|
||||
- **TeX Live**: Lightweight LaTeX packages for basic document typesetting
|
||||
|
||||
### Spell and Grammar Checking
|
||||
- **Hunspell**: Spell checker (with en-US dictionary)
|
||||
- **Aspell**: Spell checker (with en dictionary)
|
||||
- **Vale**: Syntax-aware linter for prose
|
||||
|
||||
### Text Analysis
|
||||
- **mdstat**: Text statistics including reading time estimation
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Base Container
|
||||
```bash
|
||||
# From this directory
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base
|
||||
|
||||
# Use the wrapper script to automatically detect and set user IDs
|
||||
./docker-compose-wrapper.sh build
|
||||
|
||||
# Or run commands in the base container with automatic user mapping
|
||||
./docker-compose-wrapper.sh run docmaker-base [command]
|
||||
|
||||
# Example: Convert a Markdown file to PDF using pandoc
|
||||
./docker-compose-wrapper.sh run docmaker-base pandoc input.md -o output.pdf
|
||||
|
||||
# Example: Create beautiful PDF using Eisvogel template
|
||||
./docker-compose-wrapper.sh run docmaker-base pandoc input.md --template eisvogel -o output.pdf
|
||||
|
||||
# Example: Create a timeline with Markwhen
|
||||
./docker-compose-wrapper.sh run docmaker-base markwhen input.mw --output output.html
|
||||
```
|
||||
|
||||
### Using with docker-compose directly
|
||||
```bash
|
||||
# Set environment variables and run docker-compose directly
|
||||
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build
|
||||
|
||||
# Or export variables first
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Using the wrapper script
|
||||
```bash
|
||||
# Build and start the base documentation container with automatic user mapping
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Start without rebuilding
|
||||
./docker-compose-wrapper.sh up
|
||||
|
||||
# View container status
|
||||
./docker-compose-wrapper.sh ps
|
||||
|
||||
# Stop containers
|
||||
./docker-compose-wrapper.sh down
|
||||
```
|
||||
|
||||
## User ID Mapping (For File Permissions)
|
||||
|
||||
The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:
|
||||
|
||||
- Files created inside the container will have the correct ownership on the host
|
||||
- No more root-owned files after container operations
|
||||
- Works across different environments (development, CI/CD, cloud)
|
||||
|
||||
The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:
|
||||
|
||||
```bash
|
||||
# Set specific user ID and group ID before running docker-compose
|
||||
export LOCAL_USER_ID=1000
|
||||
export LOCAL_GROUP_ID=1000
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Or run with inline environment variables:
|
||||
```bash
|
||||
LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up
|
||||
```
|
||||
|
||||
The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID.
|
||||
@@ -1,75 +0,0 @@
|
||||
# TODO List for RCEO-AIOS-Public-Tools-DocMaker Containers
|
||||
|
||||
This document tracks potential enhancements and tools to be added to the documentation generation container family.
|
||||
|
||||
## Container Structure
|
||||
|
||||
### RCEO-AIOS-Public-Tools-DocMaker-Base
|
||||
- Base documentation environment with lightweight tools
|
||||
- Purpose: Foundation for all other containers
|
||||
|
||||
### RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
- Lightweight documentation tools (no heavy LaTeX)
|
||||
- Purpose: Fast-starting documentation tasks (COO mode)
|
||||
|
||||
### RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
- Full documentation environment with LaTeX-full
|
||||
- Purpose: Complex document generation (COO mode)
|
||||
|
||||
### RCEO-AIOS-Public-Tools-DocMaker-Computational
|
||||
- All documentation tools plus R, Python, Jupyter, Octave
|
||||
- Purpose: Computational tasks and analysis (CTO mode)
|
||||
|
||||
## Tools Under Consideration
|
||||
|
||||
### [Tool Name Placeholder]
|
||||
**Purpose**: [Purpose of the tool]
|
||||
|
||||
**Description**: [Detailed description of what this tool does and how it could benefit the container]
|
||||
|
||||
**Technical Details**:
|
||||
- [Requirements]
|
||||
- [Installation method]
|
||||
|
||||
**Benefits**:
|
||||
- [How this enhances the container]
|
||||
|
||||
**Container**: [Base/Light/Full/Computational]
|
||||
**Priority**: [High/Medium/Low]
|
||||
|
||||
## Completed Items
|
||||
|
||||
### Base Container Tools
|
||||
- ✅ Core system packages (bash, curl, wget, git)
|
||||
- ✅ Programming languages (Python 3, Node.js, Rust)
|
||||
- ✅ Pandoc - Universal document converter
|
||||
- ✅ Wandmalfarbe pandoc-latex-template - Beautiful Eisvogel LaTeX template for professional PDFs
|
||||
- ✅ mdBook - Create books from Markdown files
|
||||
- ✅ mdbook-pdf - PDF renderer for mdBook
|
||||
- ✅ Typst - Modern typesetting system
|
||||
- ✅ Marp CLI - Create presentations from Markdown
|
||||
- ⏳ Markwhen - Interactive text-to-timeline tool (installation failed, needs fix)
|
||||
- ✅ Light LaTeX packages (texlive-latex-base)
|
||||
- ✅ Spell/grammar checking tools (Hunspell, Aspell, Vale)
|
||||
- ✅ Text statistics tools (mdstat, textstat)
|
||||
- ✅ Non-root user management with UID/GID mapping
|
||||
- ✅ Entrypoint script for runtime user creation
|
||||
|
||||
### Full Documentation Container Tools
|
||||
- ✅ All Base Container tools included
|
||||
- ✅ Full LaTeX (texlive-full) - for complex document generation
|
||||
|
||||
### Computational Container Tools
|
||||
- ✅ All Full Documentation Container tools included
|
||||
- ✅ R programming language and common packages
|
||||
- ✅ Python scientific stack (pandas, numpy, matplotlib, scipy)
|
||||
- ✅ Jupyter Notebooks with R kernel support
|
||||
- ✅ GNU Octave
|
||||
- ✅ Command-line calculator (bc)
|
||||
|
||||
### Organizational Improvements
|
||||
- ✅ Disciplined naming convention using RCEO-AIOS-Public-Tools- prefix
|
||||
- ✅ Individual directories per container type
|
||||
- ✅ Proper documentation with individual README files
|
||||
- ✅ Organized docker-compose files per container
|
||||
- ✅ Clear separation of COO vs CTO mode containers
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
# Detect the UID and GID of the user that owns the workspace directory (parent directory)
|
||||
WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
echo "Detecting user ID from workspace directory: $WORKSPACE_DIR"
|
||||
|
||||
if [ -d "$WORKSPACE_DIR" ]; then
|
||||
DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
|
||||
# If detection failed, try current user
|
||||
if [ "$DETECTED_USER_ID" = "0" ]; then
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
else
|
||||
# Fallback to current user if workspace directory doesn't exist
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
|
||||
echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID"
|
||||
|
||||
# Set environment variables for docker-compose
|
||||
export LOCAL_USER_ID=$DETECTED_USER_ID
|
||||
export LOCAL_GROUP_ID=$DETECTED_GROUP_ID
|
||||
|
||||
# Show usage information
|
||||
echo ""
|
||||
echo "Usage: $0 [build|up|run <service> <command>|exec <service> <command>|down|ps]"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 up # Start services"
|
||||
echo " $0 build # Build containers"
|
||||
echo " $0 run docmaker-full bash # Run command in container"
|
||||
echo " $0 down # Stop and remove containers"
|
||||
echo ""
|
||||
|
||||
# Check if docker compose (new format) or docker-compose (old format) is available
|
||||
if command -v docker &> /dev/null && docker compose version &> /dev/null; then
|
||||
# Use new docker compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker compose up'..."
|
||||
docker compose up
|
||||
else
|
||||
# Execute the provided docker compose command
|
||||
echo "Running: docker compose $*"
|
||||
docker compose "$@"
|
||||
fi
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
# Fallback to old docker-compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker-compose up'..."
|
||||
docker-compose up
|
||||
else
|
||||
# Execute the provided docker-compose command
|
||||
echo "Running: docker-compose $*"
|
||||
docker-compose "$@"
|
||||
fi
|
||||
else
|
||||
echo "Error: Neither 'docker compose' nor 'docker-compose' command found."
|
||||
echo "Please install Docker Compose to use this script."
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,18 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
docmaker-base:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: RCEO-AIOS-Public-Tools-DocMaker-Base
|
||||
image: rceo-aios-public-tools-docmaker-base:latest
|
||||
volumes:
|
||||
- ../../../:/workspace:rw
|
||||
working_dir: /workspace
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
- LOCAL_USER_ID=${LOCAL_USER_ID:-1000}
|
||||
- LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}"
|
||||
@@ -1,49 +0,0 @@
|
||||
#!/bin/bash
|
||||
# entrypoint.sh - Entrypoint script to handle user creation and permission setup at runtime
|
||||
|
||||
# Set default values if not provided
|
||||
USER_ID=${LOCAL_USER_ID:-$(id -u 1000)}
|
||||
GROUP_ID=${LOCAL_GROUP_ID:-$(id -g 1000)}
|
||||
|
||||
# In case the environment variables are not set properly, detect them from the workspace volume
|
||||
if [ "$USER_ID" = "$(id -u 0)" ] || [ "$USER_ID" = "0" ]; then
|
||||
# Detect the UID and GID of the user that owns the workspace directory
|
||||
if [ -d "/workspace" ]; then
|
||||
USER_ID=$(stat -c %u /workspace 2>/dev/null || echo 1000)
|
||||
GROUP_ID=$(stat -c %g /workspace 2>/dev/null || echo 1000)
|
||||
else
|
||||
USER_ID=${LOCAL_USER_ID:-1000}
|
||||
GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Starting with USER_ID=$USER_ID and GROUP_ID=$GROUP_ID"
|
||||
|
||||
# Create the group with specified GID
|
||||
groupadd -f -g $GROUP_ID -o ReachableCEO-Tools 2>/dev/null || groupmod -g $GROUP_ID -o ReachableCEO-Tools
|
||||
|
||||
# Create the user with specified UID and add to the group
|
||||
useradd -f -u $USER_ID -g $GROUP_ID -m -s /bin/bash -o ReachableCEO-Tools 2>/dev/null || usermod -u $USER_ID -g $GROUP_ID -o ReachableCEO-Tools
|
||||
|
||||
# Add user to sudo group for any necessary operations
|
||||
usermod -aG sudo ReachableCEO-Tools 2>/dev/null || true
|
||||
|
||||
# Make sure workspace directory exists and has proper permissions
|
||||
mkdir -p /workspace
|
||||
chown -R $USER_ID:$GROUP_ID /workspace
|
||||
|
||||
# Set up proper permissions for Rust and Cargo (if they exist)
|
||||
mkdir -p /home/ReachableCEO-Tools/.cargo
|
||||
chown $USER_ID:$GROUP_ID /home/ReachableCEO-Tools/.cargo
|
||||
|
||||
# Set up proper permissions for npm global packages (if they exist)
|
||||
mkdir -p /home/ReachableCEO-Tools/.npm
|
||||
chown $USER_ID:$GROUP_ID /home/ReachableCEO-Tools/.npm
|
||||
|
||||
# If there are additional arguments, run them as the created user
|
||||
if [ $# -gt 0 ]; then
|
||||
exec su -p ReachableCEO-Tools -c "$*"
|
||||
else
|
||||
# Otherwise start an interactive bash shell as the created user
|
||||
exec su -p ReachableCEO-Tools -c "/bin/bash"
|
||||
fi
|
||||
@@ -1,42 +0,0 @@
|
||||
FROM rceo-aios-public-tools-docmaker-full:latest
|
||||
|
||||
# Avoid prompts from apt
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install computational tools
|
||||
RUN apt-get update && apt-get install -y \
|
||||
r-base \
|
||||
r-base-dev \
|
||||
bc \
|
||||
octave \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Python scientific packages
|
||||
RUN pip3 install pandas numpy matplotlib scipy jupyter
|
||||
|
||||
# Install R packages (commonly used ones)
|
||||
RUN R -e "install.packages(c('knitr', 'rmarkdown', 'dplyr', 'ggplot2'), repos='https://cran.rstudio.com/')"
|
||||
|
||||
# Install IRkernel for R in Jupyter
|
||||
RUN R -e "install.packages('IRkernel', repos='https://cran.rstudio.com/')"
|
||||
|
||||
# Create Jupyter config directory and set up notebook directory
|
||||
RUN mkdir -p /workspace/notebooks
|
||||
|
||||
# Create Jupyter startup script
|
||||
RUN echo '#!/bin/bash' > /jupyter_start.sh && \
|
||||
echo '# Install R kernel for Jupyter if R is available' >> /jupyter_start.sh && \
|
||||
echo 'if command -v R &> /dev/null; then' >> /jupyter_start.sh && \
|
||||
echo ' R -e "IRkernel::installspec()" 2>/dev/null || true' >> /jupyter_start.sh && \
|
||||
echo 'fi' >> /jupyter_start.sh && \
|
||||
echo '# Run Jupyter as the proper user' >> /jupyter_start.sh && \
|
||||
echo 'exec su -p ReachableCEO-Tools -c "jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root --notebook-dir=/workspace/notebooks"' >> /jupyter_start.sh && \
|
||||
chmod +x /jupyter_start.sh
|
||||
|
||||
# Expose Jupyter on port 8888
|
||||
EXPOSE 8888
|
||||
|
||||
# Create a working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# The entrypoint from the base image handles user creation
|
||||
@@ -1,100 +0,0 @@
|
||||
# RCEO-AIOS-Public-Tools-DocMaker-Computational Container
|
||||
|
||||
This container is part of the AIOS-Public project and provides a comprehensive documentation and computational environment.
|
||||
|
||||
## Overview
|
||||
|
||||
The RCEO-AIOS-Public-Tools-DocMaker-Computational container extends the full documentation environment with computational tools for data analysis, scientific computing, and interactive notebooks. It's designed for CTO mode operations involving R&D and computational work.
|
||||
|
||||
## Tools Included
|
||||
|
||||
Inherits all tools from:
|
||||
- **RCEO-AIOS-Public-Tools-DocMaker-Full**: All documentation and LaTeX tools
|
||||
|
||||
### Computational Tools
|
||||
- **R Programming Language**: Statistical computing and data analysis
|
||||
- **Python Scientific Stack**:
|
||||
- pandas - Data manipulation
|
||||
- numpy - Numerical computing
|
||||
- matplotlib - Visualization
|
||||
- scipy - Scientific computing
|
||||
- **Jupyter Notebooks**: Interactive computational environments
|
||||
- **GNU Octave**: Numerical computations (MATLAB alternative)
|
||||
- **bc**: Command-line calculator
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Computational Container
|
||||
```bash
|
||||
# From this directory
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational
|
||||
|
||||
# Use the wrapper script to automatically detect and set user IDs
|
||||
./docker-compose-wrapper.sh build
|
||||
|
||||
# Or run commands in the computational container with automatic user mapping
|
||||
./docker-compose-wrapper.sh run docmaker-computational [command]
|
||||
|
||||
# Example: Run R analysis
|
||||
./docker-compose-wrapper.sh run docmaker-computational Rscript analysis.R
|
||||
|
||||
# Example: Run Python analysis
|
||||
./docker-compose-wrapper.sh run docmaker-computational python analysis.py
|
||||
|
||||
# Example: Convert a Markdown file to beautiful PDF using Eisvogel template
|
||||
./docker-compose-wrapper.sh run docmaker-computational pandoc input.md --template eisvogel -o output.pdf --pdf-engine=xelatex
|
||||
|
||||
# Example: Start Jupyter notebook server
|
||||
./docker-compose-wrapper.sh up
|
||||
# Then access at http://localhost:8888
|
||||
```
|
||||
|
||||
### Using with docker-compose directly
|
||||
```bash
|
||||
# Set environment variables and run docker-compose directly
|
||||
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build
|
||||
|
||||
# Or export variables first
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Using the wrapper script
|
||||
```bash
|
||||
# Build and start the computational container with Jupyter access and automatic user mapping
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Start without rebuilding
|
||||
./docker-compose-wrapper.sh up
|
||||
|
||||
# View container status
|
||||
./docker-compose-wrapper.sh ps
|
||||
|
||||
# Stop containers
|
||||
./docker-compose-wrapper.sh down
|
||||
```
|
||||
|
||||
## User ID Mapping (For File Permissions)
|
||||
|
||||
The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:
|
||||
|
||||
- Files created inside the container will have the correct ownership on the host
|
||||
- No more root-owned files after container operations
|
||||
- Works across different environments (development, CI/CD, cloud)
|
||||
|
||||
The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:
|
||||
|
||||
```bash
|
||||
# Set specific user ID and group ID before running docker-compose
|
||||
export LOCAL_USER_ID=1000
|
||||
export LOCAL_GROUP_ID=1000
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Or run with inline environment variables:
|
||||
```bash
|
||||
LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up
|
||||
```
|
||||
|
||||
The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID.
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
# Detect the UID and GID of the user that owns the workspace directory (parent directory)
|
||||
WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
echo "Detecting user ID from workspace directory: $WORKSPACE_DIR"
|
||||
|
||||
if [ -d "$WORKSPACE_DIR" ]; then
|
||||
DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
|
||||
# If detection failed, try current user
|
||||
if [ "$DETECTED_USER_ID" = "0" ]; then
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
else
|
||||
# Fallback to current user if workspace directory doesn't exist
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
|
||||
echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID"
|
||||
|
||||
# Set environment variables for docker-compose
|
||||
export LOCAL_USER_ID=$DETECTED_USER_ID
|
||||
export LOCAL_GROUP_ID=$DETECTED_GROUP_ID
|
||||
|
||||
# Show usage information
|
||||
echo ""
|
||||
echo "Usage: $0 [build|up|run <service> <command>|exec <service> <command>|down|ps]"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 up # Start services"
|
||||
echo " $0 build # Build containers"
|
||||
echo " $0 run docmaker-full bash # Run command in container"
|
||||
echo " $0 down # Stop and remove containers"
|
||||
echo ""
|
||||
|
||||
# Check if docker compose (new format) or docker-compose (old format) is available
|
||||
if command -v docker &> /dev/null && docker compose version &> /dev/null; then
|
||||
# Use new docker compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker compose up'..."
|
||||
docker compose up
|
||||
else
|
||||
# Execute the provided docker compose command
|
||||
echo "Running: docker compose $*"
|
||||
docker compose "$@"
|
||||
fi
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
# Fallback to old docker-compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker-compose up'..."
|
||||
docker-compose up
|
||||
else
|
||||
# Execute the provided docker-compose command
|
||||
echo "Running: docker-compose $*"
|
||||
docker-compose "$@"
|
||||
fi
|
||||
else
|
||||
echo "Error: Neither 'docker compose' nor 'docker-compose' command found."
|
||||
echo "Please install Docker Compose to use this script."
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,20 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
docmaker-computational:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: RCEO-AIOS-Public-Tools-DocMaker-Computational
|
||||
image: rceo-aios-public-tools-docmaker-computational:latest
|
||||
volumes:
|
||||
- ../../../:/workspace:rw
|
||||
working_dir: /workspace
|
||||
stdin_open: true
|
||||
tty: true
|
||||
ports:
|
||||
- "8888:8888" # Jupyter notebook access
|
||||
environment:
|
||||
- LOCAL_USER_ID=${LOCAL_USER_ID:-1000}
|
||||
- LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}"
|
||||
@@ -1,14 +0,0 @@
|
||||
FROM rceo-aios-public-tools-docmaker-base:latest
|
||||
|
||||
# Avoid prompts from apt
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install full LaTeX (the heavy component that takes time)
|
||||
RUN apt-get update && apt-get install -y \
|
||||
texlive-full \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Create a working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# The entrypoint from the base image handles user creation
|
||||
@@ -1,85 +0,0 @@
|
||||
# RCEO-AIOS-Public-Tools-DocMaker-Full Container
|
||||
|
||||
This container is part of the AIOS-Public project and provides a comprehensive documentation generation environment with full LaTeX support.
|
||||
|
||||
## Overview
|
||||
|
||||
The RCEO-AIOS-Public-Tools-DocMaker-Full container is designed for comprehensive documentation generation tasks that require full LaTeX functionality. It includes all documentation tools plus the complete TeX Live distribution for advanced document typesetting.
|
||||
|
||||
## Tools Included
|
||||
|
||||
Inherits all tools from:
|
||||
- **RCEO-AIOS-Public-Tools-DocMaker-Base**: All base documentation generation tools
|
||||
|
||||
### LaTeX
|
||||
- **TeX Live Full**: Complete LaTeX distribution for advanced document typesetting
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Full Documentation Container
|
||||
```bash
|
||||
# From this directory
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
|
||||
# Use the wrapper script to automatically detect and set user IDs
|
||||
./docker-compose-wrapper.sh build
|
||||
|
||||
# Or run commands in the full documentation container with automatic user mapping
|
||||
./docker-compose-wrapper.sh run docmaker-full [command]
|
||||
|
||||
# Example: Convert a Markdown file to PDF using pandoc with full LaTeX
|
||||
./docker-compose-wrapper.sh run docmaker-full pandoc input.md -o output.pdf --pdf-engine=xelatex
|
||||
|
||||
# Example: Create beautiful PDF using Eisvogel template
|
||||
./docker-compose-wrapper.sh run docmaker-full pandoc input.md --template eisvogel -o output.pdf --pdf-engine=xelatex
|
||||
```
|
||||
|
||||
### Using with docker-compose directly
|
||||
```bash
|
||||
# Set environment variables and run docker-compose directly
|
||||
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build
|
||||
|
||||
# Or export variables first
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Using the wrapper script
|
||||
```bash
|
||||
# Build and start the full documentation container with automatic user mapping
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Start without rebuilding
|
||||
./docker-compose-wrapper.sh up
|
||||
|
||||
# View container status
|
||||
./docker-compose-wrapper.sh ps
|
||||
|
||||
# Stop containers
|
||||
./docker-compose-wrapper.sh down
|
||||
```
|
||||
|
||||
## User ID Mapping (For File Permissions)
|
||||
|
||||
The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:
|
||||
|
||||
- Files created inside the container will have the correct ownership on the host
|
||||
- No more root-owned files after container operations
|
||||
- Works across different environments (development, CI/CD, cloud)
|
||||
|
||||
The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:
|
||||
|
||||
```bash
|
||||
# Set specific user ID and group ID before running docker-compose
|
||||
export LOCAL_USER_ID=1000
|
||||
export LOCAL_GROUP_ID=1000
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Or run with inline environment variables:
|
||||
```bash
|
||||
LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up
|
||||
```
|
||||
|
||||
The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID.
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
# Detect the UID and GID of the user that owns the workspace directory (parent directory)
|
||||
WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
echo "Detecting user ID from workspace directory: $WORKSPACE_DIR"
|
||||
|
||||
if [ -d "$WORKSPACE_DIR" ]; then
|
||||
DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
|
||||
# If detection failed, try current user
|
||||
if [ "$DETECTED_USER_ID" = "0" ]; then
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
else
|
||||
# Fallback to current user if workspace directory doesn't exist
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
|
||||
echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID"
|
||||
|
||||
# Set environment variables for docker-compose
|
||||
export LOCAL_USER_ID=$DETECTED_USER_ID
|
||||
export LOCAL_GROUP_ID=$DETECTED_GROUP_ID
|
||||
|
||||
# Show usage information
|
||||
echo ""
|
||||
echo "Usage: $0 [build|up|run <service> <command>|exec <service> <command>|down|ps]"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 up # Start services"
|
||||
echo " $0 build # Build containers"
|
||||
echo " $0 run docmaker-full bash # Run command in container"
|
||||
echo " $0 down # Stop and remove containers"
|
||||
echo ""
|
||||
|
||||
# Check if docker compose (new format) or docker-compose (old format) is available
|
||||
if command -v docker &> /dev/null && docker compose version &> /dev/null; then
|
||||
# Use new docker compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker compose up'..."
|
||||
docker compose up
|
||||
else
|
||||
# Execute the provided docker compose command
|
||||
echo "Running: docker compose $*"
|
||||
docker compose "$@"
|
||||
fi
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
# Fallback to old docker-compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker-compose up'..."
|
||||
docker-compose up
|
||||
else
|
||||
# Execute the provided docker-compose command
|
||||
echo "Running: docker-compose $*"
|
||||
docker-compose "$@"
|
||||
fi
|
||||
else
|
||||
echo "Error: Neither 'docker compose' nor 'docker-compose' command found."
|
||||
echo "Please install Docker Compose to use this script."
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,18 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
docmaker-full:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
image: rceo-aios-public-tools-docmaker-full:latest
|
||||
volumes:
|
||||
- ../../../:/workspace:rw
|
||||
working_dir: /workspace
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
- LOCAL_USER_ID=${LOCAL_USER_ID:-1000}
|
||||
- LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}"
|
||||
@@ -1,6 +0,0 @@
|
||||
FROM rceo-aios-public-tools-docmaker-base:latest
|
||||
|
||||
# Create a working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# The entrypoint from the base image handles user creation
|
||||
@@ -1,82 +0,0 @@
|
||||
# RCEO-AIOS-Public-Tools-DocMaker-Light Container
|
||||
|
||||
This container is part of the AIOS-Public project and provides a lightweight documentation generation environment.
|
||||
|
||||
## Overview
|
||||
|
||||
The RCEO-AIOS-Public-Tools-DocMaker-Light container is designed for fast-starting documentation tasks. It extends the base documentation environment without adding heavy dependencies like full LaTeX, enabling quick startup and efficient operations for lighter documentation tasks.
|
||||
|
||||
## Tools Included
|
||||
|
||||
Inherits all tools from:
|
||||
- **RCEO-AIOS-Public-Tools-DocMaker-Base**: All base documentation generation tools
|
||||
|
||||
## Usage
|
||||
|
||||
### Building the Lightweight Container
|
||||
```bash
|
||||
# From this directory
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
|
||||
# Use the wrapper script to automatically detect and set user IDs
|
||||
./docker-compose-wrapper.sh build
|
||||
|
||||
# Or run commands in the lightweight container with automatic user mapping
|
||||
./docker-compose-wrapper.sh run docmaker-light [command]
|
||||
|
||||
# Example: Convert a Markdown file to PDF using pandoc
|
||||
./docker-compose-wrapper.sh run docmaker-light pandoc input.md -o output.pdf
|
||||
|
||||
# Example: Create beautiful PDF using Eisvogel template
|
||||
./docker-compose-wrapper.sh run docmaker-light pandoc input.md --template eisvogel -o output.pdf
|
||||
```
|
||||
|
||||
### Using with docker-compose directly
|
||||
```bash
|
||||
# Set environment variables and run docker-compose directly
|
||||
LOCAL_USER_ID=$(id -u) LOCAL_GROUP_ID=$(id -g) docker-compose up --build
|
||||
|
||||
# Or export variables first
|
||||
export LOCAL_USER_ID=$(id -u)
|
||||
export LOCAL_GROUP_ID=$(id -g)
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
### Using the wrapper script
|
||||
```bash
|
||||
# Build and start the lightweight documentation container with automatic user mapping
|
||||
./docker-compose-wrapper.sh up --build
|
||||
|
||||
# Start without rebuilding
|
||||
./docker-compose-wrapper.sh up
|
||||
|
||||
# View container status
|
||||
./docker-compose-wrapper.sh ps
|
||||
|
||||
# Stop containers
|
||||
./docker-compose-wrapper.sh down
|
||||
```
|
||||
|
||||
## User ID Mapping (For File Permissions)
|
||||
|
||||
The container automatically detects and uses the host user's UID and GID to ensure proper file permissions. This means:
|
||||
|
||||
- Files created inside the container will have the correct ownership on the host
|
||||
- No more root-owned files after container operations
|
||||
- Works across different environments (development, CI/CD, cloud)
|
||||
|
||||
The container detects the user ID from the mounted workspace volume. If needed, you can override the default values by setting environment variables:
|
||||
|
||||
```bash
|
||||
# Set specific user ID and group ID before running docker-compose
|
||||
export LOCAL_USER_ID=1000
|
||||
export LOCAL_GROUP_ID=1000
|
||||
docker-compose up
|
||||
```
|
||||
|
||||
Or run with inline environment variables:
|
||||
```bash
|
||||
LOCAL_USER_ID=1000 LOCAL_GROUP_ID=1000 docker-compose up
|
||||
```
|
||||
|
||||
The container runs as a non-root user named `ReachableCEO-Tools` with the detected host user's UID/GID.
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/bash
|
||||
# docker-compose-wrapper.sh - Wrapper script to detect host UID/GID and run docker-compose
|
||||
|
||||
set -e # Exit on any error
|
||||
|
||||
# Detect the UID and GID of the user that owns the workspace directory (parent directory)
|
||||
WORKSPACE_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
echo "Detecting user ID from workspace directory: $WORKSPACE_DIR"
|
||||
|
||||
if [ -d "$WORKSPACE_DIR" ]; then
|
||||
DETECTED_USER_ID=$(stat -c %u "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
DETECTED_GROUP_ID=$(stat -c %g "$WORKSPACE_DIR" 2>/dev/null || echo 0)
|
||||
|
||||
# If detection failed, try current user
|
||||
if [ "$DETECTED_USER_ID" = "0" ]; then
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
else
|
||||
# Fallback to current user if workspace directory doesn't exist
|
||||
DETECTED_USER_ID=$(id -u)
|
||||
DETECTED_GROUP_ID=$(id -g)
|
||||
fi
|
||||
|
||||
echo "Detected USER_ID=$DETECTED_USER_ID and GROUP_ID=$DETECTED_GROUP_ID"
|
||||
|
||||
# Set environment variables for docker-compose
|
||||
export LOCAL_USER_ID=$DETECTED_USER_ID
|
||||
export LOCAL_GROUP_ID=$DETECTED_GROUP_ID
|
||||
|
||||
# Show usage information
|
||||
echo ""
|
||||
echo "Usage: $0 [build|up|run <service> <command>|exec <service> <command>|down|ps]"
|
||||
echo ""
|
||||
echo "Examples:"
|
||||
echo " $0 up # Start services"
|
||||
echo " $0 build # Build containers"
|
||||
echo " $0 run docmaker-full bash # Run command in container"
|
||||
echo " $0 down # Stop and remove containers"
|
||||
echo ""
|
||||
|
||||
# Check if docker compose (new format) or docker-compose (old format) is available
|
||||
if command -v docker &> /dev/null && docker compose version &> /dev/null; then
|
||||
# Use new docker compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker compose up'..."
|
||||
docker compose up
|
||||
else
|
||||
# Execute the provided docker compose command
|
||||
echo "Running: docker compose $*"
|
||||
docker compose "$@"
|
||||
fi
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
# Fallback to old docker-compose format
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command provided. Running 'docker-compose up'..."
|
||||
docker-compose up
|
||||
else
|
||||
# Execute the provided docker-compose command
|
||||
echo "Running: docker-compose $*"
|
||||
docker-compose "$@"
|
||||
fi
|
||||
else
|
||||
echo "Error: Neither 'docker compose' nor 'docker-compose' command found."
|
||||
echo "Please install Docker Compose to use this script."
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,18 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
docmaker-light:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
image: rceo-aios-public-tools-docmaker-light:latest
|
||||
volumes:
|
||||
- ../../../:/workspace:rw
|
||||
working_dir: /workspace
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
- LOCAL_USER_ID=${LOCAL_USER_ID:-1000}
|
||||
- LOCAL_GROUP_ID=${LOCAL_GROUP_ID:-1000}
|
||||
user: "${LOCAL_USER_ID:-1000}:${LOCAL_GROUP_ID:-1000}"
|
||||
@@ -1,37 +0,0 @@
|
||||
# RCEO-AIOS-Public Docker Documentation Tools
|
||||
|
||||
This directory contains organized Docker configurations for documentation generation tools in the AIOS-Public project.
|
||||
|
||||
## Container Structure
|
||||
|
||||
Each container has its own subdirectory with specific configuration files:
|
||||
|
||||
- `RCEO-AIOS-Public-Tools-DocMaker-Base/` - Base documentation environment with lightweight tools
|
||||
- `RCEO-AIOS-Public-Tools-DocMaker-Light/` - Fast-starting documentation tools (no heavy LaTeX)
|
||||
- `RCEO-AIOS-Public-Tools-DocMaker-Full/` - Full documentation environment with LaTeX-full
|
||||
- `RCEO-AIOS-Public-Tools-DocMaker-Computational/` - All documentation tools plus R, Python, Jupyter, Octave
|
||||
|
||||
## Container Naming Convention
|
||||
|
||||
All containers follow the `RCEO-AIOS-Public-Tools-` naming convention with descriptive suffixes.
|
||||
|
||||
## Usage
|
||||
|
||||
### Building and Running Individual Containers
|
||||
|
||||
Each container has its own subdirectory with its Dockerfile and docker-compose.yml file.
|
||||
|
||||
```bash
|
||||
# Navigate to the specific container directory
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
|
||||
# Build the container
|
||||
docker-compose build
|
||||
|
||||
# Run the container
|
||||
docker-compose up --build
|
||||
```
|
||||
|
||||
### Individual Container Documentation
|
||||
|
||||
For specific usage information for each container, see the README files in their respective subdirectories.
|
||||
@@ -1,58 +0,0 @@
|
||||
#!/bin/bash
|
||||
# build-containers.sh - Script to build all documentation containers
|
||||
|
||||
echo "Starting build of RCEO-AIOS-Public documentation containers..."
|
||||
echo "This may take several minutes, especially for the Full and Computational containers due to LaTeX and other heavy packages."
|
||||
echo ""
|
||||
|
||||
# Build the Base container first (foundation for others)
|
||||
echo "Building Base container..."
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Base
|
||||
./docker-compose-wrapper.sh build
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error building Base container. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
echo "Base container build complete"
|
||||
echo ""
|
||||
|
||||
# Build the Light container
|
||||
echo "Building Light container..."
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Light
|
||||
./docker-compose-wrapper.sh build
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error building Light container. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
echo "Light container build complete"
|
||||
echo ""
|
||||
|
||||
# Build the Full container (this will take longer due to LaTeX-full)
|
||||
echo "Building Full container (this may take several minutes due to texlive-full)..."
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Full
|
||||
./docker-compose-wrapper.sh build
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error building Full container. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
echo "Full container build complete"
|
||||
echo ""
|
||||
|
||||
# Build the Computational container (this will also take some time)
|
||||
echo "Building Computational container..."
|
||||
cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-Computational
|
||||
./docker-compose-wrapper.sh build
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error building Computational container. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
echo "Computational container build complete"
|
||||
echo ""
|
||||
|
||||
echo "All containers built successfully!"
|
||||
echo ""
|
||||
echo "You can now run individual containers with:"
|
||||
echo " cd /home/localuser/AIWorkspace/AIOS-Public/Docker/RCEO-AIOS-Public-Tools-DocMaker-[type]"
|
||||
echo " ./docker-compose-wrapper.sh up"
|
||||
echo ""
|
||||
echo "Where [type] is: Base, Light, Full, or Computational"
|
||||
@@ -1,12 +0,0 @@
|
||||
My full name is Charles N Wyble. I use the online handle @ReachableCEO.
|
||||
I am a strong believer in digital data soverignity. I am a firm practicer of self hosting (using Cloudron on a netcup vps and soon Coolify on another Cloudron VPS).
|
||||
I am 41 years old.
|
||||
I am a democrat and believe strongly in the rule of law and separation of powers.
|
||||
I actively avoid the media.
|
||||
I am solo entrepenuer creating an ecosystem of entities called TSYS Group. (Please see TSYS.md for more on that)
|
||||
My professional background is in production technical operations since 2002
|
||||
I use many command line ai agents (codex,coder,qwen,gemini) and wish to remain agent agnostic at all times
|
||||
I am located in the United States of America . As of October 2025 I am located in central texas
|
||||
I will be relocating to Raleigh North Carolina in April 2026
|
||||
I want to streamlne my life using AI and relying on it for all aspects of my professional, knowledge worker actions.
|
||||
I prefer relaxed but professional engagement and dont want to be flattered.
|
||||
@@ -1,47 +0,0 @@
|
||||
# Architectural Approach
|
||||
|
||||
This document captures the architectural approach for project development in the AIOS-Public system.
|
||||
|
||||
## Container Architecture
|
||||
|
||||
### Layered Approach
|
||||
- Base containers provide foundational tools and libraries
|
||||
- Specialized containers extend base functionality for specific use cases
|
||||
- Each layer adds specific capabilities while maintaining consistency
|
||||
|
||||
### Naming Convention
|
||||
- Use `RCEO-AIOS-Public-Tools-` prefix consistently
|
||||
- Include descriptive suffixes indicating container purpose
|
||||
- Follow pattern: `RCEO-AIOS-Public-Tools-[domain]-[type]`
|
||||
|
||||
### Security Patterns
|
||||
- Minimize root usage during build and runtime
|
||||
- Implement non-root users for all runtime operations
|
||||
- Use UID/GID mapping for proper file permissions across environments
|
||||
- Detect host user IDs automatically through file system inspection
|
||||
|
||||
### Operational Patterns
|
||||
- Create thin wrapper scripts that handle environment setup
|
||||
- Use consistent patterns for user ID detection and mapping
|
||||
- Maintain same operational workflow across all containers
|
||||
- Provide clear documentation in README files
|
||||
|
||||
### Organization Principles
|
||||
- Separate COO mode (operational tasks) from CTO mode (R&D tasks) containers
|
||||
- Create individual directories per container type
|
||||
- Maintain disciplined file organization to prevent technical debt
|
||||
- Keep repository root clean with project-specific files in subdirectories
|
||||
|
||||
## Documentation Requirements
|
||||
- Each container must have comprehensive README
|
||||
- Include usage examples and environment setup instructions
|
||||
- Document security and permission handling
|
||||
- Provide clear container mapping and purpose
|
||||
|
||||
## Implementation Workflow
|
||||
1. Start with architectural design document
|
||||
2. Create detailed implementation plan
|
||||
3. Develop following established patterns
|
||||
4. Test with sample data/usage
|
||||
5. Document for end users
|
||||
6. Commit with conventional commit messages
|
||||
@@ -1,9 +0,0 @@
|
||||
This repository is where I will start all of my AI interactions from.
|
||||
|
||||
Unless we are making new tools, you won't be doing any work in this repository (other than when I tell you to commit/push anything in the tree).
|
||||
|
||||
You will be doing all your work in a new repository that I will tell you about. You will have all of the core knowledge from
|
||||
the GUIDEBOOK directory files and you will follow the workflow and rules outlined in AgentRules.md in that new project repository.
|
||||
|
||||
Think of this repository like the top level of a users home directory who is hyper organized. These markdown files and docker containers are kind of the dotfiles.
|
||||
Any work would be done in a sub directory off of the users home directory, not at the top level.
|
||||
@@ -1,36 +0,0 @@
|
||||
This file documents the TSYS Group.
|
||||
|
||||
Legal Entities (all filed and domiciled in the great state of Texas)
|
||||
|
||||
Turnkey Network Systems LLC (a series LLC)
|
||||
RackRental.net Operating Company LLC (a stand alone LLC) (all consulting and SAAS operations are run from here)
|
||||
Suborbital Systems Development Company LLC (a stand alone LLC) (this is my "moonshot" business and will be where all fundraising is done)
|
||||
|
||||
Americans For A Better Network INC (a Texas non profit) (plan to be a 501c3) (want to get a fiscal sponsor by end of 2025)
|
||||
Side Door Group (a Texas non profit) (plan to be a 501c4)
|
||||
Side Door Solutions Group INC (a Texas non profit) (super PAC)
|
||||
|
||||
|
||||
The overaall goal of TSYS Group is to solve the digital divide through a combination of :
|
||||
|
||||
R&D
|
||||
Operations
|
||||
Advocacy/Lobbying/Education
|
||||
|
||||
We are firecly FLO and also our governance materials are open.
|
||||
|
||||
We want our operations/business model to be adopted by other passionate pragmatic individuals to solve big problems (clean water, clean energy, governance, food shortages etc). We believe strongly that only a combination of private enterprise and government can solve these issues.
|
||||
|
||||
|
||||
Series of Turnkey Network Systems LLC
|
||||
|
||||
High Flight Network Operating Company (HFNOC) (will be a coop in all states that recognize it) in early formation stages currently . This will be the entity (a collection of sub entities under this banner) that will own and operate (in coop/collective trust) balloons and ground stations for MorseNet (what we are calling the network we are building)
|
||||
|
||||
High Flight Network Finance Company (HFNFC) (will also be a coop just like HFNFC , also in early formation stages currently). This will be the entity that handles network finance/construction/loans etc. The idea is to raise financing from main street. To the extent wall street participates, it's only given financial interest, not governance.
|
||||
We will not do security bundling and chase returns. The capital will earn a reasonable rate of return and reinvest into the coop to build more networks and keep debt and interest rates low.
|
||||
|
||||
RWSCP
|
||||
|
||||
RWFO
|
||||
|
||||
AP4AP
|
||||
48
README.md
48
README.md
@@ -1,12 +1,38 @@
|
||||
# AIOS-Public
|
||||
# GUIDEBOOK Index
|
||||
|
||||
The @ReachableCEO AI Operating System - Public edition
|
||||
|
||||
All things that the @ReachableCEO wishes to share with the world in how he is using AI for his businesses/revenue generation etc.
|
||||
|
||||
Two other editions exist, as subsets of this one:
|
||||
|
||||
- Personal is for COO (TSYS/WFO) scoped things
|
||||
- Private is for coaching/therapy/personal development etc
|
||||
|
||||
I spend 80% of my time in public, and the rest between personal/private
|
||||
Welcome to the AIOS-Public GUIDEBOOK - your comprehensive guide to the AI Operating System template.
|
||||
|
||||
## Overview
|
||||
The GUIDEBOOK contains essential documentation that serves as the foundation for all AIOS projects. Each document has a specific purpose in the AIOS ecosystem.
|
||||
|
||||
## Document List
|
||||
|
||||
### [AboutMe.md](./AboutMe.md)
|
||||
Personal information about Charles N Wyble (@ReachableCEO), including background, philosophy, and professional details.
|
||||
|
||||
### [AgentRules.md](./AgentRules.md)
|
||||
Operational guidelines for AI agents, including interaction rules, workflow patterns, and technical guidelines.
|
||||
|
||||
### [ArchitecturalApproach.md](./ArchitecturalApproach.md)
|
||||
Technical architecture patterns, including container architecture, security patterns, operational patterns, and implementation workflow.
|
||||
|
||||
### [StartHere.md](./StartHere.md)
|
||||
Onboarding guide explaining the purpose of the AIOS-Public repository as a template for launching new projects.
|
||||
|
||||
### [TSYS.md](./TSYS.md)
|
||||
Business information about the TSYS Group, including legal entities and organizational structure.
|
||||
|
||||
### [AUDIT1.md](./AUDIT1.md)
|
||||
First comprehensive audit of the GUIDEBOOK, containing analysis and improvement suggestions.
|
||||
|
||||
## How to Use This Template
|
||||
1. Clone this repository to create a new project
|
||||
2. Review the documentation in the order above to understand the AIOS approach
|
||||
3. Follow the architectural patterns outlined in ArchitecturalApproach.md
|
||||
4. Apply the operational guidelines from AgentRules.md in your project work
|
||||
5. Customize documentation as needed for your specific project
|
||||
|
||||
## Relationship to Other AIOS Editions
|
||||
- This is the Public edition of AIOS
|
||||
- Two other editions exist as subsets: Personal and Private
|
||||
- 80% of focus is on public work, with the rest in personal/private editions
|
||||
31
StartHere.md
Normal file
31
StartHere.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Getting Started with AIOS-Public
|
||||
|
||||
This repository serves as the starting point for all AI interactions within the AIOS system.
|
||||
|
||||
## Purpose
|
||||
|
||||
This repository functions as a template for launching new projects. It contains the foundational architecture, documentation, and tools needed to create new repositories following AIOS patterns.
|
||||
|
||||
## Workflow
|
||||
|
||||
- Unless specifically creating new tools for the template itself, AI agents will not work directly in this repository
|
||||
- All project-specific work happens in separate repositories created from this template
|
||||
- When instructed, AI agents may commit or push changes to this template repository
|
||||
- AI agents carry forward the core knowledge from GUIDEBOOK files when working in project repositories
|
||||
- All work in project repositories follows the workflow and rules outlined in AgentRules.md
|
||||
|
||||
## Repository Structure
|
||||
|
||||
Think of this repository like a highly organized home directory. The markdown files and Docker containers serve as the foundational "dotfiles" that provide consistent patterns across all projects.
|
||||
|
||||
Project work is conducted in subdirectories or separate repositories created from this template, not directly in this template repository.
|
||||
|
||||
## Next Steps
|
||||
|
||||
When beginning work in a new project repository:
|
||||
1. Review the GUIDEBOOK documentation for architectural patterns
|
||||
2. Follow the workflow outlined in AgentRules.md
|
||||
3. Apply the architectural approach described in ArchitecturalApproach.md
|
||||
|
||||
---
|
||||
*Last updated: October 16, 2025*
|
||||
54
TSYS.md
Normal file
54
TSYS.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# TSYS Group Documentation
|
||||
|
||||
This file documents the TSYS Group and its entities.
|
||||
|
||||
## Legal Entities
|
||||
|
||||
All entities are filed and domiciled in the great state of Texas.
|
||||
|
||||
### For-Profit Entities
|
||||
- **Turnkey Network Systems LLC** (a series LLC)
|
||||
- **RackRental.net Operating Company LLC** (a stand alone LLC) - all consulting and SaaS operations are run from here
|
||||
- **Suborbital Systems Development Company LLC** (a stand alone LLC) - this is the "moonshot" business and will be where all fundraising is done
|
||||
|
||||
### Non-Profit Entities
|
||||
- **Americans For A Better Network INC** (a Texas non profit) - plan to be a 501c3, want to get a fiscal sponsor by end of 2025
|
||||
- **Side Door Group** (a Texas non profit) - plan to be a 501c4
|
||||
- **Side Door Solutions Group INC** (a Texas non profit) - super PAC
|
||||
|
||||
## Mission Statement
|
||||
|
||||
The overall goal of TSYS Group is to solve the digital divide through a combination of:
|
||||
- R&D
|
||||
- Operations
|
||||
- Advocacy/Lobbying/Education
|
||||
|
||||
We are fiercely FLO and our governance materials are open.
|
||||
|
||||
## Business Model Vision
|
||||
|
||||
We want our operations/business model to be adopted by other passionate pragmatic individuals to solve big problems (clean water, clean energy, governance, food shortages etc). We believe strongly that only a combination of private enterprise and government can solve these issues.
|
||||
|
||||
## Series of Turnkey Network Systems LLC
|
||||
|
||||
### High Flight Network Operating Company (HFNOC)
|
||||
- Will be a coop in all states that recognize it
|
||||
- Currently in early formation stages
|
||||
- Will be the entity (a collection of sub entities under this banner) that will own and operate (in coop/collective trust) balloons and ground stations for MorseNet (what we are calling the network we are building)
|
||||
|
||||
### High Flight Network Finance Company (HFNFC)
|
||||
- Will also be a coop just like HFNOC
|
||||
- Also in early formation stages currently
|
||||
- Will handle network finance/construction/loans etc.
|
||||
- The idea is to raise financing from main street
|
||||
- To the extent wall street participates, it's only given financial interest, not governance
|
||||
- Will not do security bundling and chase returns
|
||||
- The capital will earn a reasonable rate of return and reinvest into the coop to build more networks and keep debt and interest rates low.
|
||||
|
||||
## Abbreviated Entity Names
|
||||
- RWSCP
|
||||
- RWFO
|
||||
- AP4AP
|
||||
|
||||
---
|
||||
*Last updated: October 16, 2025*
|
||||
Reference in New Issue
Block a user