[{"data":1,"prerenderedAt":125},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-project-structure":60,"-en-getting-started-project-structure-surround":120},[4,30],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/en/getting-started","en/1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/en/getting-started/introduction","en/1.getting-started/1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Tech Stack","/en/getting-started/stack","en/1.getting-started/2.stack","i-lucide-cpu",{"title":20,"path":21,"stem":22,"icon":23},"Installation on your own infrastructure","/en/getting-started/installation","en/1.getting-started/3.installation","i-lucide-hard-drive-download",{"title":25,"path":26,"stem":27,"icon":28},"Directory Structure","/en/getting-started/project-structure","en/1.getting-started/4.project-structure","i-lucide-folder-tree",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Features","/en/features","en/2.features",[35,40,45,50,55],{"title":36,"path":37,"stem":38,"icon":39},"Chat with AI","/en/features/chats","en/2.features/1.chats","i-lucide-message-square-text",{"title":41,"path":42,"stem":43,"icon":44},"Many Models Conversations","/en/features/many-models-conversations","en/2.features/2.many-models-conversations","i-lucide-brain",{"title":46,"path":47,"stem":48,"icon":49},"Restrict domains","/en/features/restrict-domains","en/2.features/3.restrict-domains","i-lucide-at-sign",{"title":51,"path":52,"stem":53,"icon":54},"Agents","/en/features/agents","en/2.features/4.agents","i-lucide-bot",{"title":56,"path":57,"stem":58,"icon":59},"Custom Context","/en/features/custom-context","en/2.features/5.custom-context","i-lucide-table-of-contents",{"id":61,"title":25,"body":62,"description":113,"extension":114,"layout":115,"links":115,"meta":116,"navigation":117,"path":26,"seo":118,"stem":27,"__hash__":119},"docs_en/en/1.getting-started/4.project-structure.md",{"type":63,"value":64,"toc":108},"minimark",[65,69,74,85,88,92],[66,67,68],"p",{},"Singularities AI is a full-stack application built with Spring Boot (Java) for the backend and Nuxt 4 (TypeScript/Vue) for the frontend. The project is containerized using Docker and follows a modular, feature-based architecture.",[70,71,73],"h2",{"id":72},"global-structure","Global Structure",[75,76,82],"pre",{"className":77,"code":79,"language":80,"meta":81},[78],"language-text","singularities-ai/\n├── README.md\n├── LICENSE.txt\n├── docker-compose.yml\n├── backend/          # Spring Boot backend\n│   ├── Dockerfile\n│   ├── mvnw\n│   ├── mvnw.cmd\n│   ├── pom.xml\n│   ├── src/\n│   │   └── main/\n│   │       ├── java/com/singularities/api/\n│   │       │   ├── SingularitiesAIApiApplication.java\n│   │       │   ├── config/          # Configuration classes\n│   │       │   ├── controller/      # REST controllers\n│   │       │   ├── data/            # Data layer (entities, repositories, DTOs)\n│   │       │   ├── exception/       # Custom exceptions and handlers\n│   │       │   ├── filter/          # Security filters\n│   │       │   ├── mapper/          # DTO mappers\n│   │       │   └── service/         # Business logic\n│   │       └── resources/\n│   │           ├── application.properties\n│   │           ├── db/migration/    # Flyway migrations\n│   │           └── email/           # Email templates\n│   └── .mvn/wrapper/\n└── frontend/         # Nuxt 4 frontend\n    ├── Dockerfile\n    ├── package.json\n    ├── playwright.config.ts\n    ├── nuxt.config.ts\n    ├── tsconfig.json\n    ├── app/\n    │   ├── app.vue\n    │   ├── assets/styles/          # Global styles\n    │   ├── components/             # Vue components\n    │   ├── composables/            # Vue composables\n    │   ├── interfaces/             # TypeScript interfaces\n    │   ├── layouts/                # Layouts\n    │   ├── middleware/             # Route middleware\n    │   ├── pages/                  # Pages (routes)\n    │   ├── plugins/                # Plugins\n    │   ├── stores/                 # Pinia stores\n    │   └── utils/                  # Utilities\n    ├── modules/                    # Nuxt modules\n    ├── public/                     # Static assets\n    ├── tests/                      # Playwright tests\n    └── server/                     # Server-side code\n","text","",[83,84,79],"code",{"__ignoreMap":81},[86,87],"hr",{},[70,89,91],{"id":90},"support","Support",[66,93,94,95,102,103,107],{},"For questions, suggestions, or assistance, ",[96,97,101],"a",{"href":98,"rel":99},"https://github.com/Singularities-AI/singularities-ai/issues",[100],"nofollow","open an issue"," or contact ",[96,104,106],{"href":105},"mailto:contact@singularities-ai.com","contact@singularities-ai.com",".",{"title":81,"searchDepth":109,"depth":109,"links":110},2,[111,112],{"id":72,"depth":109,"text":73},{"id":90,"depth":109,"text":91},"Learn about the project structure of Singularities AI latest version.","md",null,{},{"icon":28},{"title":25,"description":113},"zDGoErvosmCiTms6gDGFonoE8gtJKX03AifZWfR0X_0",[121,123],{"title":20,"path":21,"stem":22,"description":122,"icon":23,"children":-1},"Deploy Singularities AI on your own infrastructure.",{"title":36,"path":37,"stem":38,"description":124,"icon":39,"children":-1},"Engage in natural, dynamic conversations with AI models powered by Ollama. Switch between models and contexts effortlessly to get the right answers for every situation.",1761154206014]