Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 239064f088 | |||
| 03de5cd2b4 | |||
| 09fe7cb557 | |||
| 57ff4c7b01 | |||
| 900973063a | |||
| c4450cb4e6 | |||
| 52c756e052 | |||
| aab3b357cf | |||
| aec1d53bcc | |||
| 1de9490540 | |||
| df28bb5dc6 | |||
| 35f80cf249 | |||
| cd2af612a2 | |||
| 088a1c3beb |
@@ -81,4 +81,3 @@ steps:
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.venv
|
||||
.idea
|
||||
16
Dockerfile
16
Dockerfile
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
File diff suppressed because it is too large
Load Diff
@@ -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": [
|
||||
1
apis/blog/site/search/search_index.json
Normal file
1
apis/blog/site/search/search_index.json
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
|
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
Reference in New Issue
Block a user