14 Commits
0.1.3 ... main

Author SHA1 Message Date
239064f088 bumped up to 0.1.6
All checks were successful
continuous-integration/drone/push Build is passing
2025-12-10 16:21:37 +05:30
03de5cd2b4 ## Commit Message
**Restructure documentation layout, update entrypoint links, and migrate folders**

This commit introduces a consistent and modular documentation structure by
grouping related documentation under `libs`, `apis`, and `tutorials`. The
Dockerfile now reflects the new paths, and the index page links have been
adjusted accordingly.

### Folder Migrations
The following documentation directories were moved:

- `./mongo-ops/site` → `./libs/mongo-ops/site`
- `./blog-api/site` → `./apis/blog/site`
- `./tutorials/media-manager/site` (unchanged, retained under tutorials)

These changes improve namespace clarity and reflect the logical separation
between libraries, APIs, and tutorials.

### Additional Changes
- Updated URLs in `_index/index.html` to point to `/libs/mongo-ops/` and `/apis/blog/`.
- Removed outdated root-level documentation folders.
2025-12-10 16:17:29 +05:30
09fe7cb557 bumped up to 0.1.5
All checks were successful
continuous-integration/drone/push Build is passing
2025-11-20 23:21:48 +05:30
57ff4c7b01 open in new tab 2025-11-20 23:20:56 +05:30
900973063a no need for explicit mappings as we have folder structure 2025-11-20 23:20:46 +05:30
c4450cb4e6 Merge remote-tracking branch 'origin/main' 2025-11-20 23:08:18 +05:30
52c756e052 tutorials/media-manager (#1)
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: #1
2025-11-20 17:37:18 +00:00
aab3b357cf requirements for mkdocs and gitignore 2025-11-20 20:43:52 +05:30
aec1d53bcc fixes for doc index page 2025-11-12 05:47:16 +05:30
1de9490540 blog api 0.2.0 version
All checks were successful
continuous-integration/drone/push Build is passing
2025-11-12 05:39:37 +05:30
df28bb5dc6 trigger drone only on push
All checks were successful
continuous-integration/drone/push Build is passing
2025-11-05 21:30:04 +05:30
35f80cf249 trigger drone only on tags 2025-11-05 21:29:30 +05:30
cd2af612a2 fixed Blog Api Server for production 2025-11-05 21:29:19 +05:30
088a1c3beb added card for Blog Api 2025-11-05 21:12:44 +05:30
207 changed files with 19886 additions and 642 deletions

View File

@@ -81,4 +81,3 @@ steps:
trigger:
event:
- push
- tag

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.venv
.idea

View File

@@ -8,13 +8,17 @@ LABEL description="Static documentation host for Aetoskia projects"
# Copy custom Nginx configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy all project docs
# Expected folder layout (on build context):
# ./_index/
# ./mongo-ops/site/
# Copy Index
COPY ./_index /usr/share/nginx/html/
COPY ./mongo-ops/site /usr/share/nginx/html/mongo-ops/
COPY ./blog-api/site /usr/share/nginx/html/api/blog/
# Copy Libs
COPY ./libs/mongo-ops/site /usr/share/nginx/html/libs/mongo-ops/
# Copy Apis
COPY ./apis/blog/site /usr/share/nginx/html/apis/blog/
# Copy Tutorials
COPY ./tutorials/media-manager/site /usr/share/nginx/html/tutorials/media-manager/
# Expose HTTP port
EXPOSE 80

View File

@@ -113,6 +113,17 @@
<header>
<h1>Aetoskia Developer Docs</h1>
<p>Central documentation hub for Aetoskia projects</p>
<span style="
background: #30363d;
color: #fff;
padding: 3px 8px;
border-radius: 6px;
font-size: 0.85rem;
font-weight: 600;
border: 1px solid #484f58;
">
Build: 0.1.6
</span>
</header>
<div class="grid">
@@ -122,7 +133,26 @@
A modular, async MongoDB operations layer for FastAPI microservices.
Simplifies CRUD, transactions, and model management.
</p>
<a href="/mongo-ops/">View Documentation →</a>
<a href="/libs/mongo-ops/" target="_blank">View Documentation →</a>
</div>
<div class="card">
<h2>Blog API</h2>
<p>
A modular, async Blog API backend for FastAPI microservices.
Provides streamlined CRUD operations for articles and authors, supports nested author details within article endpoints, and enables simple association management between content and contributors.
</p>
<a href="/apis/blog/" target="_blank">View Documentation →</a>
</div>
<div class="card">
<h2>Media Manager Tutorial</h2>
<p>
Step-by-step guide to the Media Manager architecture, ingestion pipeline,
automation workflows, and integration with Radarr, Sonarr, and your custom
dashboard services.
</p>
<a href="/tutorials/media-manager/" target="_blank">View Tutorial →</a>
</div>
</div>

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -13,11 +13,11 @@
"name": "MIT License",
"url": "https://opensource.org/licenses/MIT"
},
"version": "0.0.4"
"version": "0.2.0"
},
"servers": [
{
"url": "https://api.aetoskia.com",
"url": "https://api.aetoskia.com/blogs",
"description": "Production server"
},
{
@@ -186,17 +186,18 @@
"type": "string",
"title": "Author Id"
}
},
{
"name": "email",
"in": "query",
"required": true,
"schema": {
"type": "string",
"title": "Email"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Author"
}
}
}
},
"responses": {
"200": {
"description": "Successful Response",
@@ -491,6 +492,131 @@
}
}
},
"/auth/register": {
"post": {
"tags": [
"auth"
],
"summary": "Create User",
"operationId": "create_user_auth_register_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserAuth"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicUser"
}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/auth/login": {
"post": {
"tags": [
"auth"
],
"summary": "Login",
"operationId": "login_auth_login_post",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UserAuth"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
},
"422": {
"description": "Validation Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HTTPValidationError"
}
}
}
}
}
}
},
"/auth/me": {
"get": {
"tags": [
"auth"
],
"summary": "Read Users Me",
"operationId": "read_users_me_auth_me_get",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PublicUser"
}
}
}
}
},
"security": [
{
"OAuth2PasswordBearer": []
}
]
}
},
"/auth/logout": {
"post": {
"tags": [
"auth"
],
"summary": "Logout",
"operationId": "logout_auth_logout_post",
"responses": {
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {}
}
}
}
}
}
},
"/health": {
"get": {
"summary": "Health Check",
@@ -573,7 +699,8 @@
"tag",
"title",
"description",
"content"
"content",
"authors"
],
"title": "Article",
"example": {
@@ -683,7 +810,15 @@
"title": "Username"
},
"email": {
"type": "string",
"anyOf": [
{
"type": "string",
"format": "email"
},
{
"type": "null"
}
],
"title": "Email"
},
"is_active": {
@@ -692,20 +827,31 @@
"default": true
},
"name": {
"type": "string",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name"
},
"avatar": {
"type": "string",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Avatar"
}
},
"type": "object",
"required": [
"username",
"email",
"name",
"avatar"
"username"
],
"title": "Author",
"example": {
@@ -726,6 +872,132 @@
"type": "object",
"title": "HTTPValidationError"
},
"PublicUser": {
"properties": {
"_id": {
"anyOf": [
{
"type": "string",
"examples": [
"507f1f77bcf86cd799439011"
]
},
{
"type": "null"
}
],
"title": "Id"
},
"created_at": {
"type": "string",
"format": "date-time",
"title": "Created At"
},
"updated_at": {
"type": "string",
"format": "date-time",
"title": "Updated At"
},
"username": {
"type": "string",
"maxLength": 50,
"minLength": 3,
"title": "Username"
},
"email": {
"anyOf": [
{
"type": "string",
"format": "email"
},
{
"type": "null"
}
],
"title": "Email"
},
"is_active": {
"type": "boolean",
"title": "Is Active",
"default": true
}
},
"type": "object",
"required": [
"username"
],
"title": "PublicUser",
"example": {
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T00:00:00"
}
},
"UserAuth": {
"properties": {
"_id": {
"anyOf": [
{
"type": "string",
"examples": [
"507f1f77bcf86cd799439011"
]
},
{
"type": "null"
}
],
"title": "Id"
},
"created_at": {
"type": "string",
"format": "date-time",
"title": "Created At"
},
"updated_at": {
"type": "string",
"format": "date-time",
"title": "Updated At"
},
"username": {
"type": "string",
"maxLength": 50,
"minLength": 3,
"title": "Username"
},
"email": {
"anyOf": [
{
"type": "string",
"format": "email"
},
{
"type": "null"
}
],
"title": "Email"
},
"is_active": {
"type": "boolean",
"title": "Is Active",
"default": true
},
"password": {
"type": "string",
"minLength": 6,
"title": "Password"
}
},
"type": "object",
"required": [
"username",
"password"
],
"title": "UserAuth",
"example": {
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T00:00:00"
}
},
"ValidationError": {
"properties": {
"loc": {
@@ -759,6 +1031,17 @@
],
"title": "ValidationError"
}
},
"securitySchemes": {
"OAuth2PasswordBearer": {
"type": "oauth2",
"flows": {
"password": {
"scopes": {},
"tokenUrl": "/auth/login"
}
}
}
}
},
"tags": [

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More