Files
vito/public/api-docs/openapi.yaml
Saeed Vaziry adc0653d15 api-docs fix
2025-06-10 12:23:42 +02:00

6322 lines
192 KiB
YAML

openapi: 3.0.3
info:
title: 'API Documentation'
description: "VitoDeploy's API documentation."
version: 1.0.0
servers:
-
url: 'https://vito.test'
tags:
-
name: Endpoints
description: ''
-
name: cron-jobs
description: ''
-
name: database-users
description: ''
-
name: databases
description: ''
-
name: firewall-rules
description: ''
-
name: general
description: ''
-
name: projects
description: ''
-
name: redirects
description: ''
-
name: server-providers
description: ''
-
name: servers
description: ''
-
name: services
description: ''
-
name: sites
description: ''
-
name: source-controls
description: ''
-
name: ssh-keys
description: ''
-
name: storage-providers
description: ''
paths:
'/api/servers/{server_id}/agent/{id}':
post:
summary: ''
operationId: postApiServersServer_idAgentId
description: ''
parameters: []
responses: { }
tags:
- Endpoints
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
load:
type: number
description: ''
example: 4326.41688
nullable: false
memory_total:
type: number
description: ''
example: 4326.41688
nullable: false
memory_used:
type: number
description: ''
example: 4326.41688
nullable: false
memory_free:
type: number
description: ''
example: 4326.41688
nullable: false
disk_total:
type: number
description: ''
example: 4326.41688
nullable: false
disk_used:
type: number
description: ''
example: 4326.41688
nullable: false
disk_free:
type: number
description: ''
example: 4326.41688
nullable: false
required:
- load
- memory_total
- memory_used
- memory_free
- disk_total
- disk_used
- disk_free
security: []
parameters:
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the agent.'
example: architecto
required: true
schema:
type: string
/api/git-hooks:
get:
summary: ''
operationId: getApiGitHooks
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Endpoints
security: []
'/api/projects/{project_id}/servers/{server_id}/cron-jobs':
get:
summary: list
operationId: list
description: 'Get all cron jobs.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 3
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
server_id:
type: integer
example: 1
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- cron-jobs
security: []
post:
summary: create
operationId: create
description: 'Create a new cron job.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
server_id:
type: integer
example: 1
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- cron-jobs
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
command:
type: string
description: ''
example: architecto
nullable: false
user:
type: string
description: ''
example: vito
nullable: false
enum:
- root
- vito
frequency:
type: string
description: 'Frequency of the cron job.'
example: '* * * * *'
nullable: false
required:
- command
- user
- frequency
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/cron-jobs/{cronJob_id}':
get:
summary: show
operationId: show
description: 'Get a cron job by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
server_id: 1
command: 'ls -la'
user: root
frequency: '* * * * *'
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
server_id:
type: integer
example: 1
command:
type: string
example: 'ls -la'
user:
type: string
example: root
frequency:
type: string
example: '* * * * *'
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- cron-jobs
security: []
delete:
summary: delete
operationId: delete
description: 'Delete cron job.'
parameters: []
responses:
204:
description: ''
tags:
- cron-jobs
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: cronJob_id
description: 'The ID of the cronJob.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users':
get:
summary: list
operationId: list
description: 'Get all database users.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 4
server_id: 1
username: cartwright.maxine
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
server_id: 1
username: gusikowski.eden
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 4
server_id: 1
username: cartwright.maxine
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
server_id: 1
username: gusikowski.eden
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 4
server_id:
type: integer
example: 1
username:
type: string
example: cartwright.maxine
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: creating
status_color:
type: string
example: warning
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- database-users
security: []
post:
summary: create
operationId: create
description: 'Create a new database user.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
server_id: 1
username: justina.gaylord
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
server_id:
type: integer
example: 1
username:
type: string
example: justina.gaylord
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: creating
status_color:
type: string
example: warning
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- database-users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: ''
example: architecto
nullable: false
password:
type: string
description: ''
example: '|]|{+-'
nullable: false
host:
type: string
description: 'Host, if it is a remote user.'
example: '%'
nullable: false
required:
- username
- password
- host
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}':
get:
summary: show
operationId: show
description: 'Get a database user by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
server_id: 1
username: zbailey
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
server_id:
type: integer
example: 1
username:
type: string
example: zbailey
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: creating
status_color:
type: string
example: warning
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- database-users
security: []
delete:
summary: delete
operationId: delete
description: 'Delete database user.'
parameters: []
responses:
204:
description: ''
tags:
- database-users
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: databaseUser_id
description: 'The ID of the databaseUser.'
example: 16
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/database-users/{databaseUser_id}/link':
post:
summary: link
operationId: link
description: 'Link to databases'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
server_id: 1
username: zbailey
databases: []
host: '%'
status: creating
status_color: warning
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
server_id:
type: integer
example: 1
username:
type: string
example: zbailey
databases:
type: array
example: []
host:
type: string
example: '%'
status:
type: string
example: creating
status_color:
type: string
example: warning
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- database-users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
databases:
type: string
description: 'Array of database names to link to the user.'
example: architecto
nullable: false
required:
- databases
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: databaseUser_id
description: 'The ID of the databaseUser.'
example: 16
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases':
get:
summary: list
operationId: list
description: 'Get all databases.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 9
server_id: 1
name: zbailey
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 10
server_id: 1
name: rempel.chadrick
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 9
server_id: 1
name: zbailey
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 10
server_id: 1
name: rempel.chadrick
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 9
server_id:
type: integer
example: 1
name:
type: string
example: zbailey
collation:
type: string
example: null
charset:
type: string
example: null
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- databases
security: []
post:
summary: create
operationId: create
description: 'Create a new database.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 9
server_id: 1
name: zbailey
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 9
server_id:
type: integer
example: 1
name:
type: string
example: zbailey
collation:
type: string
example: null
charset:
type: string
example: null
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- databases
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: architecto
nullable: false
charset:
type: string
description: ''
example: architecto
nullable: false
collation:
type: string
description: ''
example: architecto
nullable: false
required:
- name
- charset
- collation
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases/{id}':
get:
summary: show
operationId: show
description: 'Get a database by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 9
server_id: 1
name: rempel.chadrick
collation: null
charset: null
status: ready
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 9
server_id:
type: integer
example: 1
name:
type: string
example: rempel.chadrick
collation:
type: string
example: null
charset:
type: string
example: null
status:
type: string
example: ready
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- databases
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the database.'
example: 8
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/databases/{database_id}':
delete:
summary: delete
operationId: delete
description: 'Delete database.'
parameters: []
responses:
204:
description: ''
tags:
- databases
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: database_id
description: 'The ID of the database.'
example: 8
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/firewall-rules':
get:
summary: list
operationId: list
description: 'Get all firewall rules.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 22
name: eius
server_id: 1
type: allow
protocol: tcp
port: 9322
source: 113.14.236.204
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 23
name: velit
server_id: 1
type: allow
protocol: tcp
port: 2983
source: 199.172.126.144
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 22
name: eius
server_id: 1
type: allow
protocol: tcp
port: 9322
source: 113.14.236.204
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 23
name: velit
server_id: 1
type: allow
protocol: tcp
port: 2983
source: 199.172.126.144
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 22
name:
type: string
example: eius
server_id:
type: integer
example: 1
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 9322
source:
type: string
example: 113.14.236.204
mask:
type: string
example: '24'
note:
type: string
example: test
status:
type: string
example: creating
status_color:
type: string
example: info
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- firewall-rules
security: []
post:
summary: create
operationId: create
description: 'Create a new firewall rule.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 22
name: eius
server_id: 1
type: allow
protocol: tcp
port: 9322
source: 113.14.236.204
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 22
name:
type: string
example: eius
server_id:
type: integer
example: 1
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 9322
source:
type: string
example: 113.14.236.204
mask:
type: string
example: '24'
note:
type: string
example: test
status:
type: string
example: creating
status_color:
type: string
example: info
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- firewall-rules
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: architecto
nullable: false
type:
type: string
description: ''
example: allow
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: tcp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: architecto
nullable: false
source:
type: string
description: ''
example: architecto
nullable: false
mask:
type: string
description: 'Mask for source IP.'
example: '0'
nullable: false
required:
- name
- type
- protocol
- port
- mask
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/firewall-rules/{firewallRule_id}':
put:
summary: edit
operationId: edit
description: 'Update an existing firewall rule.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 22
name: eius
server_id: 1
type: allow
protocol: tcp
port: 9322
source: 113.14.236.204
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 22
name:
type: string
example: eius
server_id:
type: integer
example: 1
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 9322
source:
type: string
example: 113.14.236.204
mask:
type: string
example: '24'
note:
type: string
example: test
status:
type: string
example: creating
status_color:
type: string
example: info
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- firewall-rules
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: ''
example: architecto
nullable: false
type:
type: string
description: ''
example: deny
nullable: false
enum:
- allow
- deny
protocol:
type: string
description: ''
example: udp
nullable: false
enum:
- tcp
- udp
port:
type: string
description: ''
example: architecto
nullable: false
source:
type: string
description: ''
example: architecto
nullable: false
mask:
type: string
description: 'Mask for source IP.'
example: '0'
nullable: false
required:
- name
- type
- protocol
- port
- mask
security: []
get:
summary: show
operationId: show
description: 'Get a firewall rule by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 22
name: velit
server_id: 1
type: allow
protocol: tcp
port: 2983
source: 199.172.126.144
mask: '24'
note: test
status: creating
status_color: info
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 22
name:
type: string
example: velit
server_id:
type: integer
example: 1
type:
type: string
example: allow
protocol:
type: string
example: tcp
port:
type: integer
example: 2983
source:
type: string
example: 199.172.126.144
mask:
type: string
example: '24'
note:
type: string
example: test
status:
type: string
example: creating
status_color:
type: string
example: info
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- firewall-rules
security: []
delete:
summary: delete
operationId: delete
description: 'Delete firewall rule.'
parameters: []
responses:
204:
description: ''
tags:
- firewall-rules
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: firewallRule_id
description: 'The ID of the firewallRule.'
example: 19
required: true
schema:
type: integer
/api/health:
get:
summary: health-check
operationId: healthCheck
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
version: 2.5.0
properties:
success:
type: boolean
example: true
version:
type: string
example: 2.5.0
tags:
- general
security: []
/api/projects:
get:
summary: list
operationId: list
description: 'Get all projects.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 3
name: 'Belle Dickens'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
name: 'Mittie Considine'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
name: 'Belle Dickens'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
name: 'Mittie Considine'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Belle Dickens'
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- projects
security: []
post:
summary: create
operationId: create
description: 'Create a new project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Ms. Elisabeth Okuneva'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Ms. Elisabeth Okuneva'
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: architecto
nullable: false
required:
- name
security: []
'/api/projects/{id}':
get:
summary: show
operationId: show
description: 'Get a project by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: "Aleen O'Kon"
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: "Aleen O'Kon"
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- projects
security: []
put:
summary: update
operationId: update
description: 'Update project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Ms. Elisabeth Okuneva'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Ms. Elisabeth Okuneva'
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- projects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the project.'
example: architecto
nullable: false
required:
- name
security: []
parameters:
-
in: path
name: id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}':
delete:
summary: delete
operationId: delete
description: 'Delete project.'
parameters: []
responses:
204:
description: ''
tags:
- projects
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects':
post:
summary: create
operationId: create
description: 'Create a new redirect.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- redirects
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
description: ''
example: architecto
nullable: false
to:
type: string
description: ''
example: architecto
nullable: false
mode:
type: string
description: ''
example: 307
nullable: false
enum:
- 301
- 302
- 307
- 308
required:
- from
- to
- mode
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}':
delete:
summary: delete
operationId: delete
description: 'Delete a redirect.'
parameters: []
responses:
204:
description: ''
tags:
- redirects
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
-
in: path
name: redirect_id
description: 'The ID of the redirect.'
example: 2
required: true
schema:
type: integer
'/api/projects/{project_id}/server-providers':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 4
project_id: null
global: true
name: ab
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
project_id: null
global: true
name: incidunt
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 4
project_id: null
global: true
name: ab
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
project_id: null
global: true
name: incidunt
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: ab
provider:
type: string
example: custom
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- server-providers
security: []
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: eius
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: eius
provider:
type: string
example: custom
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- server-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
example: architecto
nullable: false
name:
type: string
description: 'The name of the server provider.'
example: architecto
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: architecto
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: architecto
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: architecto
nullable: false
required:
- provider
- name
- token
- key
- secret
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/server-providers/{serverProvider_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: mollitia
provider: vultr
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: mollitia
provider:
type: string
example: vultr
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- server-providers
security: []
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: eius
provider: custom
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: eius
provider:
type: string
example: custom
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- server-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the server provider.'
example: architecto
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: false
nullable: false
enum:
- true
- false
required:
- name
- global
security: []
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- server-providers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: serverProvider_id
description: 'The ID of the serverProvider.'
example: 3
required: true
schema:
type: integer
'/api/projects/{project_id}/servers':
get:
summary: list
operationId: list
description: 'Get all servers in a project.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 7
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Rhiannon Hackett'
ssh_user: vito
ssh_users:
- root
- vito
ip: 15.21.182.27
local_ip: 15.126.47.30
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 8
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Maya Bins'
ssh_user: vito
ssh_users:
- root
- vito
ip: 88.63.32.129
local_ip: 161.58.4.234
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 7
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Rhiannon Hackett'
ssh_user: vito
ssh_users:
- root
- vito
ip: 15.21.182.27
local_ip: 15.126.47.30
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 8
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Maya Bins'
ssh_user: vito
ssh_users:
- root
- vito
ip: 88.63.32.129
local_ip: 161.58.4.234
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 7
project_id:
type: integer
example: 1
services:
type: array
example: []
user_id:
type: integer
example: 1
provider_id:
type: string
example: null
name:
type: string
example: 'Rhiannon Hackett'
ssh_user:
type: string
example: vito
ssh_users:
type: array
example:
- root
- vito
items:
type: string
ip:
type: string
example: 15.21.182.27
local_ip:
type: string
example: 15.126.47.30
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: integer
example: 0
last_update_check:
type: string
example: null
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- servers
security: []
post:
summary: create
operationId: create
description: 'Create a new server.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 7
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Ms. Elisabeth Okuneva'
ssh_user: vito
ssh_users:
- root
- vito
ip: 75.13.66.152
local_ip: 199.172.126.144
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 7
project_id:
type: integer
example: 1
services:
type: array
example: []
user_id:
type: integer
example: 1
provider_id:
type: string
example: null
name:
type: string
example: 'Ms. Elisabeth Okuneva'
ssh_user:
type: string
example: vito
ssh_users:
type: array
example:
- root
- vito
items:
type: string
ip:
type: string
example: 75.13.66.152
local_ip:
type: string
example: 199.172.126.144
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: integer
example: 0
last_update_check:
type: string
example: null
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- servers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The server provider type'
example: architecto
nullable: false
server_provider:
type: string
description: 'If the provider is not custom, the ID of the server provider profile'
example: linode
nullable: false
enum:
- custom
- hetzner
- digitalocean
- linode
- vultr
region:
type: string
description: 'Provider region if the provider is not custom'
example: architecto
nullable: false
plan:
type: string
description: 'Provider plan if the provider is not custom'
example: architecto
nullable: false
ip:
type: string
description: 'SSH IP address if the provider is custom'
example: architecto
nullable: false
port:
type: string
description: 'SSH Port if the provider is custom'
example: architecto
nullable: false
name:
type: string
description: 'The name of the server.'
example: architecto
nullable: false
os:
type: string
description: 'The os of the server'
example: architecto
nullable: false
webserver:
type: string
description: 'Web server'
example: none
nullable: false
enum:
- none
- nginx
- caddy
database:
type: string
description: Database
example: mysql80
nullable: false
enum:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
php:
type: string
description: 'PHP version'
example: '8.2'
nullable: false
enum:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
required:
- provider
- server_provider
- region
- plan
- ip
- port
- name
- os
- webserver
- database
- php
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{id}':
get:
summary: show
operationId: show
description: 'Get a server by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 7
project_id: 1
services: []
user_id: 1
provider_id: null
name: 'Belle Dickens'
ssh_user: vito
ssh_users:
- root
- vito
ip: 51.210.32.30
local_ip: 82.174.132.158
port: 22
os: ubuntu_22
type: regular
type_data: null
provider: custom
provider_data: null
public_key: test
status: ready
auto_update: null
available_updates: 0
security_updates: null
progress: 100
progress_step: null
updates: 0
last_update_check: null
status_color: success
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 7
project_id:
type: integer
example: 1
services:
type: array
example: []
user_id:
type: integer
example: 1
provider_id:
type: string
example: null
name:
type: string
example: 'Belle Dickens'
ssh_user:
type: string
example: vito
ssh_users:
type: array
example:
- root
- vito
items:
type: string
ip:
type: string
example: 51.210.32.30
local_ip:
type: string
example: 82.174.132.158
port:
type: integer
example: 22
os:
type: string
example: ubuntu_22
type:
type: string
example: regular
type_data:
type: string
example: null
provider:
type: string
example: custom
provider_data:
type: string
example: null
public_key:
type: string
example: test
status:
type: string
example: ready
auto_update:
type: string
example: null
available_updates:
type: integer
example: 0
security_updates:
type: string
example: null
progress:
type: integer
example: 100
progress_step:
type: string
example: null
updates:
type: integer
example: 0
last_update_check:
type: string
example: null
status_color:
type: string
example: success
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- servers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/reboot':
post:
summary: reboot
operationId: reboot
description: 'Reboot a server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/upgrade':
post:
summary: upgrade
operationId: upgrade
description: 'Upgrade server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}':
delete:
summary: delete
operationId: delete
description: 'Delete server.'
parameters: []
responses:
204:
description: ''
tags:
- servers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services':
get:
summary: list
operationId: list
description: 'Get all services.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
server_id: 1
type: webserver
type_data: null
name: nginx
version: null
unit: null
status: ready
status_color: success
icon: ''
is_default: null
created_at: null
updated_at: null
-
id: null
server_id: 1
type: webserver
type_data: null
name: nginx
version: null
unit: null
status: ready
status_color: success
icon: ''
is_default: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
server_id: 1
type: webserver
type_data: null
name: nginx
version: null
unit: null
status: ready
status_color: success
icon: ''
is_default: null
created_at: null
updated_at: null
-
id: null
server_id: 1
type: webserver
type_data: null
name: nginx
version: null
unit: null
status: ready
status_color: success
icon: ''
is_default: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: null
server_id:
type: integer
example: 1
type:
type: string
example: webserver
type_data:
type: string
example: null
name:
type: string
example: nginx
version:
type: string
example: null
unit:
type: string
example: null
status:
type: string
example: ready
status_color:
type: string
example: success
icon:
type: string
example: ''
is_default:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{id}':
get:
summary: show
operationId: show
description: 'Get a service by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: null
server_id: 1
type: webserver
type_data: null
name: nginx
version: null
unit: null
status: ready
status_color: success
icon: ''
is_default: null
created_at: null
updated_at: null
properties:
id:
type: string
example: null
server_id:
type: integer
example: 1
type:
type: string
example: webserver
type_data:
type: string
example: null
name:
type: string
example: nginx
version:
type: string
example: null
unit:
type: string
example: null
status:
type: string
example: ready
status_color:
type: string
example: success
icon:
type: string
example: ''
is_default:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/start':
post:
summary: start
operationId: start
description: 'Start service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop':
post:
summary: stop
operationId: stop
description: 'Stop service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart':
post:
summary: restart
operationId: restart
description: 'Restart service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable':
post:
summary: enable
operationId: enable
description: 'Enable service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable':
post:
summary: disable
operationId: disable
description: 'Disable service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/services/{service_id}':
delete:
summary: delete
operationId: delete
description: 'Delete service.'
parameters: []
responses:
204:
description: ''
tags:
- services
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: service_id
description: 'The ID of the service.'
example: 22
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites':
get:
summary: list
operationId: list
description: 'Get all sites.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 15
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 16
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 15
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 16
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 15
server_id:
type: integer
example: 1
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
features:
type: array
example:
- deployment
- commands
- env
- ssl
- workers
items:
type: string
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
status_color:
type: string
example: success
auto_deploy:
type: boolean
example: false
port:
type: string
example: null
user:
type: string
example: vito
url:
type: string
example: 'http://test.com'
force_ssl:
type: boolean
example: false
progress:
type: integer
example: 100
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- sites
security: []
post:
summary: create
operationId: create
description: 'Create a new site.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 15
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 15
server_id:
type: integer
example: 1
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
features:
type: array
example:
- deployment
- commands
- env
- ssl
- workers
items:
type: string
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
status_color:
type: string
example: success
auto_deploy:
type: boolean
example: false
port:
type: string
example: null
user:
type: string
example: vito
url:
type: string
example: 'http://test.com'
force_ssl:
type: boolean
example: false
progress:
type: integer
example: 100
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: ''
example: php-blank
nullable: false
enum:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
domain:
type: string
description: ''
example: architecto
nullable: false
aliases:
type: array
description: ''
example:
- architecto
items:
type: string
php_version:
type: string
description: 'One of the installed PHP Versions'
example: '7.4'
nullable: false
web_directory:
type: string
description: 'Required for PHP and Laravel sites'
example: public
nullable: false
source_control:
type: string
description: 'Source control ID, Required for Sites which support source control'
example: architecto
nullable: false
repository:
type: string
description: 'Repository, Required for Sites which support source control'
example: organization/repository
nullable: false
branch:
type: string
description: 'Branch, Required for Sites which support source control'
example: main
nullable: false
composer:
type: boolean
description: 'Run composer if site supports composer'
example: true
nullable: false
version:
type: string
description: 'Version, if the site type requires a version like PHPMyAdmin'
example: 5.2.1
nullable: false
user:
type: string
description: 'user, to isolate the website under a new user'
example: architecto
nullable: false
method:
type: string
description: 'Load balancer method, Required if the site type is Load balancer'
example: round-robin
nullable: false
enum:
- round-robin
- least-connections
- ip-hash
required:
- type
- domain
- aliases
- php_version
- web_directory
- source_control
- repository
- branch
- composer
- version
- user
- method
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{id}':
get:
summary: show
operationId: show
description: 'Get a site by ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 15
server_id: 1
source_control_id: null
type: laravel
type_data: null
features:
- deployment
- commands
- env
- ssl
- workers
domain: test.com
aliases: null
web_directory: /
path: /home
php_version: '8.2'
repository: null
branch: main
status: ready
status_color: success
auto_deploy: false
port: null
user: vito
url: 'http://test.com'
force_ssl: false
progress: 100
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 15
server_id:
type: integer
example: 1
source_control_id:
type: string
example: null
type:
type: string
example: laravel
type_data:
type: string
example: null
features:
type: array
example:
- deployment
- commands
- env
- ssl
- workers
items:
type: string
domain:
type: string
example: test.com
aliases:
type: string
example: null
web_directory:
type: string
example: /
path:
type: string
example: /home
php_version:
type: string
example: '8.2'
repository:
type: string
example: null
branch:
type: string
example: main
status:
type: string
example: ready
status_color:
type: string
example: success
auto_deploy:
type: boolean
example: false
port:
type: string
example: null
user:
type: string
example: vito
url:
type: string
example: 'http://test.com'
force_ssl:
type: boolean
example: false
progress:
type: integer
example: 100
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- sites
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}':
delete:
summary: delete
operationId: delete
description: 'Delete site.'
parameters: []
responses:
204:
description: ''
tags:
- sites
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer':
post:
summary: load-balancer
operationId: loadBalancer
description: 'Update load balancer.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
method:
type: string
description: 'Load balancer method, Required if the site type is Load balancer'
example: round-robin
nullable: false
enum:
- round-robin
- least-connections
- ip-hash
servers:
type: array
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
example:
- architecto
items:
type: string
required:
- method
- servers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases':
put:
summary: aliases
operationId: aliases
description: 'Update aliases.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
aliases:
type: array
description: 'Array of aliases'
example:
- architecto
items:
type: string
required:
- aliases
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deploy':
post:
summary: deploy
operationId: deploy
description: 'Run site deployment script'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script':
put:
summary: deployment-script
operationId: deploymentScript
description: 'Update site deployment script'
parameters: []
responses:
204:
description: ''
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
script:
type: string
description: 'Content of the deployment script'
example: architecto
nullable: false
required:
- script
security: []
get:
summary: deployment-script
operationId: deploymentScript
description: 'Get site deployment script content'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/sites/{site_id}/env':
get:
summary: env
operationId: env
description: 'Get site .env file content'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
env: APP_NAME=Laravel\nAPP_ENV=production
properties:
data:
type: object
properties:
env:
type: string
example: APP_NAME=Laravel\nAPP_ENV=production
tags:
- sites
security: []
put:
summary: env
operationId: env
description: 'Update site .env file'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- sites
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
env:
type: string
description: 'Content of the .env file'
example: architecto
nullable: false
required:
- env
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: site_id
description: 'The ID of the site.'
example: 14
required: true
schema:
type: integer
'/api/projects/{project_id}/source-controls':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 2
project_id: null
global: true
name: 'Ms. Elisabeth Okuneva'
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 3
project_id: null
global: true
name: "Aleen O'Kon"
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 2
project_id: null
global: true
name: 'Ms. Elisabeth Okuneva'
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 3
project_id: null
global: true
name: "Aleen O'Kon"
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Ms. Elisabeth Okuneva'
provider:
type: string
example: github
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- source-controls
security: []
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 2
project_id: null
global: true
name: 'Mrs. Justina Gaylord'
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Mrs. Justina Gaylord'
provider:
type: string
example: github
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider'
example: gitlab
nullable: false
enum:
- gitlab
- github
- bitbucket
name:
type: string
description: 'The name of the storage provider.'
example: architecto
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: architecto
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: architecto
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: '|]|{+-'
nullable: false
required:
- provider
- name
- token
- url
- username
- password
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/source-controls/{sourceControl_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 2
project_id: null
global: true
name: 'Misael Runte'
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Misael Runte'
provider:
type: string
example: github
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- source-controls
security: []
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 2
project_id: null
global: true
name: 'Mrs. Justina Gaylord'
provider: github
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 2
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: 'Mrs. Justina Gaylord'
provider:
type: string
example: github
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- source-controls
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the storage provider.'
example: architecto
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: architecto
nullable: false
url:
type: string
description: 'The URL if the provider is Gitlab and it is self-hosted'
example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
nullable: false
username:
type: string
description: 'The username if the provider is Bitbucket'
example: architecto
nullable: false
password:
type: string
description: 'The password if the provider is Bitbucket'
example: '|]|{+-'
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: false
nullable: false
enum:
- true
- false
required:
- name
- token
- url
- username
- password
- global
security: []
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- source-controls
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: sourceControl_id
description: 'The ID of the sourceControl.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/ssh-keys':
get:
summary: list
operationId: list
description: 'Get all ssh keys.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 3
name: 'Haven Romaguera'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
name: 'Viva Marquardt'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 3
name: 'Haven Romaguera'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 4
name: 'Viva Marquardt'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Haven Romaguera'
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- ssh-keys
security: []
post:
summary: create
operationId: create
description: 'Deploy ssh key to server.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 3
name: 'Ms. Elisabeth Okuneva'
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 3
name:
type: string
example: 'Ms. Elisabeth Okuneva'
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- ssh-keys
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
key_id:
type: string
description: 'The ID of the key.'
example: architecto
nullable: false
name:
type: string
description: 'Key name, required if key_id is not provided.'
example: architecto
nullable: false
public_key:
type: string
description: 'Public Key, required if key_id is not provided.'
example: architecto
nullable: false
required:
- key_id
- name
- public_key
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
'/api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}':
delete:
summary: delete
operationId: delete
description: 'Delete ssh key from server.'
parameters: []
responses:
204:
description: ''
tags:
- ssh-keys
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: server_id
description: 'The ID of the server.'
example: 6
required: true
schema:
type: integer
-
in: path
name: sshKey_id
description: 'The ID of the sshKey.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/storage-providers':
get:
summary: list
operationId: list
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 4
project_id: null
global: true
name: harum
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
project_id: null
global: true
name: commodi
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: /
per_page: 25
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 4
project_id: null
global: true
name: harum
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
-
id: 5
project_id: null
global: true
name: commodi
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: harum
provider:
type: string
example: local
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: '/?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 25
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- storage-providers
security: []
post:
summary: create
operationId: create
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: eius
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: eius
provider:
type: string
example: local
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- storage-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
provider:
type: string
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
example: architecto
nullable: false
name:
type: string
description: 'The name of the storage provider.'
example: architecto
nullable: false
token:
type: string
description: 'The token if provider requires api token'
example: architecto
nullable: false
key:
type: string
description: 'The key if provider requires key'
example: architecto
nullable: false
secret:
type: string
description: 'The secret if provider requires key'
example: architecto
nullable: false
required:
- provider
- name
- token
- key
- secret
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
'/api/projects/{project_id}/storage-providers/{storageProvider_id}':
get:
summary: show
operationId: show
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: et
provider: dropbox
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: et
provider:
type: string
example: dropbox
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- storage-providers
security: []
put:
summary: update
operationId: update
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 4
project_id: null
global: true
name: eius
provider: local
created_at: '2025-06-10T10:21:56.000000Z'
updated_at: '2025-06-10T10:21:56.000000Z'
properties:
id:
type: integer
example: 4
project_id:
type: string
example: null
global:
type: boolean
example: true
name:
type: string
example: eius
provider:
type: string
example: local
created_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
updated_at:
type: string
example: '2025-06-10T10:21:56.000000Z'
tags:
- storage-providers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the storage provider.'
example: architecto
nullable: false
global:
type: string
description: 'Accessible in all projects'
example: true
nullable: false
enum:
- true
- false
required:
- name
- global
security: []
delete:
summary: delete
operationId: delete
description: ''
parameters: []
responses:
204:
description: ''
tags:
- storage-providers
security: []
parameters:
-
in: path
name: project_id
description: 'The ID of the project.'
example: 1
required: true
schema:
type: integer
-
in: path
name: storageProvider_id
description: 'The ID of the storageProvider.'
example: 1
required: true
schema:
type: integer