|
1 | | -# AutomaInfracore |
| 1 | +# AutomaInfraCore |
2 | 2 |
|
3 | | -## Setup |
| 3 | +[](https://swift.org/) |
| 4 | +[](https://developer.apple.com/) |
| 5 | +[](https://vapor.codes/) |
4 | 6 |
|
5 | | -**Local**: |
| 7 | +AutomaInfraCore is the core infrastructure powering the Automa application, providing both backend services and shared application components. This monorepo contains everything needed to run the Automa platform, including the server-side components and shared client libraries. |
6 | 8 |
|
7 | | -1. Create `.env.development`, copy and paste variables from `env.development` note in Automa Obsidian vault |
8 | | -2. Run `npm run compose:up` to start all the services |
| 9 | +## 📦 Project Structure |
9 | 10 |
|
10 | | -**Cloud environment**: |
| 11 | +The repository is organized into several main components: |
11 | 12 |
|
12 | | -Having a script that automates setting up all hosted environments on fly.io aren't needed, because we will never migrate to another fly.io account. In the future we might migrate to another platform. |
| 13 | +### Backend (`/Backend`) |
| 14 | +The server-side component built with Vapor 4, providing: |
| 15 | +- RESTful API endpoints |
| 16 | +- Database models and migrations (PostgreSQL) |
| 17 | +- Authentication and authorization |
| 18 | +- Background job processing |
| 19 | +- Integration with external services (Twitter, OpenAI, etc.) |
| 20 | +- Metrics and monitoring (Prometheus, Loki) |
13 | 21 |
|
14 | | -1. Run `fly secrets import < .env.sandbox -a automa-backend-sandbox` (replace app and env file names) |
| 22 | +### App (`/App`) |
| 23 | +Contains the client-side applications and shared components: |
| 24 | +- **AutomaApp**: Main iOS/macOS application |
| 25 | +- **AutomaAppShared**: Shared code between platforms |
| 26 | + - Network layer |
| 27 | + - Data models |
| 28 | + - Business logic |
| 29 | +- **AutomaUIKit**: Shared UI components and theming |
15 | 30 |
|
| 31 | +### DataTypes (`/Backend/DataTypes`) |
| 32 | +Shared data models and type definitions used across the application. |
| 33 | + |
| 34 | +## 🚀 Features |
| 35 | + |
| 36 | +- **Cross-Platform Support**: Native applications for both iOS and macOS |
| 37 | +- **Modern Architecture**: Built with Swift 5.9 and Swift Concurrency |
| 38 | +- **Scalable Backend**: Powered by Vapor 4 with PostgreSQL |
| 39 | +- **AI Integration**: OpenAI integration for intelligent features |
| 40 | +- **Social Media Integration**: Twitter API integration |
| 41 | +- **Real-time Updates**: WebSocket support for live updates |
| 42 | +- **Monitoring**: Built-in metrics and logging |
| 43 | + |
| 44 | +## 🛠️ Technical Stack |
| 45 | + |
| 46 | +- **Backend**: Swift 5.9, Vapor 4, PostgreSQL |
| 47 | +- **iOS/macOS**: SwiftUI, Combine, Swift Concurrency |
| 48 | +- **Infrastructure**: Docker, AWS (via Soto) |
| 49 | +- **Hosting**: Fly.io |
| 50 | +- **CI/CD**: GitHub Actions |
| 51 | +- **Monitoring**: Prometheus, Loki, Grafana |
| 52 | +- **Dependencies**: |
| 53 | + - Vapor ecosystem (Fluent, Leaf, JWT) |
| 54 | + - Alamofire for networking |
| 55 | + - OpenAI SDK |
| 56 | + - TwitterAPIKit |
| 57 | + - SwiftSoup for HTML parsing |
| 58 | + |
| 59 | +## 🔧 Setup (Coming Soon) |
| 60 | + |
| 61 | +A comprehensive setup guide for self-hosting Automa or running it locally will be provided in the future. This will include: |
| 62 | + |
| 63 | +1. Prerequisites and system requirements |
| 64 | +2. Database setup and configuration |
| 65 | +3. Environment variables and secrets |
| 66 | +4. Building and running the backend |
| 67 | +5. Building and running the client applications |
| 68 | +6. Deployment options |
| 69 | + |
| 70 | +## 🤝 Contributing |
| 71 | + |
| 72 | +Contributions are welcome! Please read our contributing guidelines before submitting pull requests. |
| 73 | + |
| 74 | +## 📄 License |
| 75 | + |
| 76 | +This project is open source and available under the MIT License. See the [LICENSE](LICENSE) file for more information. |
| 77 | + |
| 78 | +## 📬 Contact |
| 79 | + |
| 80 | +For inquiries, contact me maintainer william@getautoma.app or ceo@getautoma.app. |
0 commit comments