Add site redirects (#552)

* feat(redirects): add redirects to sites

* chore(style): fixed coding style issues

* style: fix php-stan docblocks

* style: pint cleanup

* tests: fixed redirect test suite

* feat: vhosts include additional configs

* fix: use exact location matching

* - add enums
- use queues
- use vhost rather than separate conf files
- vhost formatter
- cleanup

* generate docs

---------

Co-authored-by: Saeed Vaziry <mr.saeedvaziry@gmail.com>
This commit is contained in:
Jamie Wood 2025-03-31 16:30:57 +01:00 committed by GitHub
parent 7882d2022c
commit f483f7fdca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
53 changed files with 6944 additions and 4495 deletions

View File

@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PahVdEb56Z3f14kDgc68aev'
- 'Bearer 46fadkVc1vP5Ea8hg3bZeD6'
controller: null
method: null
route: null
@ -113,7 +113,7 @@ endpoints:
name: command
description: ''
required: true
example: qui
example: sit
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: user
description: ''
required: true
example: vito
example: root
type: string
enumValues:
- root
@ -142,8 +142,8 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
command: qui
user: vito
command: sit
user: root
frequency: '* * * * *'
fileParameters: []
responses:
@ -157,7 +157,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer agkPEVc3h6D1d6a8evfZb54'
- 'Bearer eaEVDZ1ka5v4hf6Pgcd386b'
controller: null
method: null
route: null
@ -204,7 +204,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 17
example: 13
type: integer
enumValues: []
exampleWasSpecified: false
@ -213,7 +213,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
cronJob_id: 17
cronJob_id: 13
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -230,7 +230,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b518EePkVcdhDvZaf6643ga'
- 'Bearer gZkc1Vh568badDefE64vPa3'
controller: null
method: null
route: null
@ -277,7 +277,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 11
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
@ -286,7 +286,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
cronJob_id: 11
cronJob_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -303,7 +303,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3cak566dDhPvV8eZafg4bE1'
- 'Bearer PceD65b61vaV8Eg3a4dkfhZ'
controller: null
method: null
route: null

View File

@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"name":"joyce53","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"eric55","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"name":"fkrajcik","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"critchie","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vegcPa1dk6f435E68ZbhaVD'
- 'Bearer aZvgeV364fd8b6a5EDchP1k'
controller: null
method: null
route: null
@ -113,7 +113,7 @@ endpoints:
name: name
description: ''
required: true
example: debitis
example: esse
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: charset
description: ''
required: true
example: maxime
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -133,21 +133,21 @@ endpoints:
name: collation
description: ''
required: true
example: sed
example: labore
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: debitis
charset: maxime
collation: sed
name: esse
charset: ut
collation: labore
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"brekke.isabell","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"cory33","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vk1fhea8caEg4dvD35PbZ66'
- 'Bearer fVvDPc64eaEk5bd36hgZ18a'
controller: null
method: null
route: null
@ -202,7 +202,7 @@ endpoints:
name: id
description: 'The ID of the database.'
required: true
example: 11
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
@ -211,7 +211,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
id: 11
id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -220,7 +220,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"vandervort.emmalee","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"walter.jacey","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer av45D6PehEdbZVgc381akf6'
- 'Bearer bvcEZgDaPfd564V18ahek63'
controller: null
method: null
route: null
@ -275,7 +275,7 @@ endpoints:
name: database_id
description: 'The ID of the database.'
required: true
example: 5
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
@ -284,7 +284,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
database_id: 5
database_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -301,7 +301,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hDa6EdgkP84fcV61baZ3v5e'
- 'Bearer 4a68DgeP6vcZbfVkh5a3d1E'
controller: null
method: null
route: null

View File

@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"username":"lehner.eloy","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"rlowe","databases":[],"host":"%","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"username":"imurray","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"raleigh.heidenreich","databases":[],"host":"%","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3Da5E66PfZgdb81vkceah4V'
- 'Bearer Ebak4v1cZPe5hd66D8V3gfa'
controller: null
method: null
route: null
@ -113,7 +113,7 @@ endpoints:
name: username
description: ''
required: true
example: voluptas
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: password
description: ''
required: true
example: ':D+e=/;H,'
example: "L&1)4X-w>&T=:'Y2#x"
type: string
enumValues: []
exampleWasSpecified: false
@ -140,14 +140,14 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
username: voluptas
password: ':D+e=/;H,'
username: ut
password: "L&1)4X-w>&T=:'Y2#x"
host: '%'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"fahey.joseph","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kbernhard","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer DvPa3c6f5Edbagh8kVe41Z6'
- 'Bearer E4kahacZv6VDg81e6f3P5db'
controller: null
method: null
route: null
@ -202,7 +202,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 19
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -211,7 +211,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 19
databaseUser_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -220,7 +220,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"szboncak","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"lavada.casper","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer VvDgd431cbE68heZ5fa6kaP'
- 'Bearer 3DgPZadcaf6h5bk4Vv8E61e'
controller: null
method: null
route: null
@ -275,7 +275,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 11
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -284,7 +284,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 11
databaseUser_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -292,19 +292,19 @@ endpoints:
name: databases
description: 'Array of database names to link to the user.'
required: true
example: accusantium
example: laboriosam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
databases: accusantium
databases: laboriosam
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"smith.liliana","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"ojerde","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -312,7 +312,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1ZaahDcVeEvf6kd58P346gb'
- 'Bearer Deh4d1aa586ZgckPvE3bV6f'
controller: null
method: null
route: null
@ -359,7 +359,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 18
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -368,7 +368,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 18
databaseUser_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -385,7 +385,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6g31ZcdV68bDfEaak54vePh'
- 'Bearer Pcd366f5egE1hVba8aZk4vD'
controller: null
method: null
route: null

View File

@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"name":"ea","server_id":null,"type":"allow","protocol":"tcp","port":41910,"source":"202.183.211.242","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"iusto","server_id":null,"type":"allow","protocol":"tcp","port":60689,"source":"227.149.61.57","mask":24,"note":"test","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"name":"optio","server_id":null,"type":"allow","protocol":"tcp","port":52674,"source":"142.10.115.135","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"dolores","server_id":null,"type":"allow","protocol":"tcp","port":34607,"source":"20.175.64.76","mask":24,"note":"test","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8g15h66aPf3ZdvkEab4ceVD'
- 'Bearer vhcgVk5aa8de6fP3Z4E1Db6'
controller: null
method: null
route: null
@ -113,7 +113,7 @@ endpoints:
name: name
description: ''
required: true
example: autem
example: voluptas
type: string
enumValues: []
exampleWasSpecified: false
@ -123,7 +123,7 @@ endpoints:
name: type
description: ''
required: true
example: allow
example: deny
type: string
enumValues:
- allow
@ -135,7 +135,7 @@ endpoints:
name: protocol
description: ''
required: true
example: tcp
example: udp
type: string
enumValues:
- tcp
@ -147,7 +147,7 @@ endpoints:
name: port
description: ''
required: true
example: quas
example: qui
type: string
enumValues: []
exampleWasSpecified: false
@ -157,7 +157,7 @@ endpoints:
name: source
description: ''
required: false
example: blanditiis
example: amet
type: string
enumValues: []
exampleWasSpecified: false
@ -174,17 +174,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: autem
type: allow
protocol: tcp
port: quas
source: blanditiis
name: voluptas
type: deny
protocol: udp
port: qui
source: amet
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"in","server_id":null,"type":"allow","protocol":"tcp","port":13253,"source":"245.228.81.208","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"molestiae","server_id":null,"type":"allow","protocol":"tcp","port":26783,"source":"190.202.255.27","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -192,7 +192,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8dhcE436Zbk6fgVDP1aa5ev'
- 'Bearer Z166cP5kab3eEhgD48Vvafd'
controller: null
method: null
route: null
@ -256,7 +256,7 @@ endpoints:
name: name
description: ''
required: true
example: earum
example: et
type: string
enumValues: []
exampleWasSpecified: false
@ -290,7 +290,7 @@ endpoints:
name: port
description: ''
required: true
example: ab
example: rerum
type: string
enumValues: []
exampleWasSpecified: false
@ -300,7 +300,7 @@ endpoints:
name: source
description: ''
required: false
example: possimus
example: sed
type: string
enumValues: []
exampleWasSpecified: false
@ -317,17 +317,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: earum
name: et
type: allow
protocol: tcp
port: ab
source: possimus
port: rerum
source: sed
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"repudiandae","server_id":null,"type":"allow","protocol":"tcp","port":44250,"source":"243.200.88.169","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"labore","server_id":null,"type":"allow","protocol":"tcp","port":29044,"source":"113.132.217.224","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -335,7 +335,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ag6ebf3456hVkd8ca1PvEDZ'
- 'Bearer 6P31Vc845vhEbkaagZdDfe6'
controller: null
method: null
route: null
@ -400,7 +400,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"name":"quam","server_id":null,"type":"allow","protocol":"tcp","port":62505,"source":"73.254.77.244","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"ipsa","server_id":null,"type":"allow","protocol":"tcp","port":50679,"source":"42.114.67.31","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -408,7 +408,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Paagd6D6fV5v4kZ31ebc8hE'
- 'Bearer VdDb3eEaagvh68Z1kc5fP46'
controller: null
method: null
route: null
@ -481,7 +481,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer avf16Vhb43dacPZge6D5k8E'
- 'Bearer ak3db6vef1DVEhacZ85g64P'
controller: null
method: null
route: null

View File

@ -34,7 +34,7 @@ endpoints:
cache-control: 'no-cache, private'
content-type: application/json
x-ratelimit-limit: '60'
x-ratelimit-remaining: '59'
x-ratelimit-remaining: '58'
access-control-allow-origin: '*'
description: null
custom: []

View File

@ -30,7 +30,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"name":"Amara Jaskolski","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":4,"name":"Christy Kohler","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":3,"name":"Kattie Haley","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":4,"name":"Kailyn Kiehn","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -38,7 +38,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 5v83ePa1dah4bcE6VgfZDk6'
- 'Bearer 6D5kabfhdagZcP61VEe48v3'
controller: null
method: null
route: null
@ -69,19 +69,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: temporibus
example: excepturi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: temporibus
name: excepturi
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"name":"Prof. Enrico Wehner Sr.","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Dayne White","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -89,7 +89,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Zk61vE43aagDbc5V68edhPf'
- 'Bearer 1Vafe4abk6gvZE5dD36h8Pc'
controller: null
method: null
route: null
@ -132,7 +132,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"name":"Zoie Feest","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Cheyenne Ankunding III","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -140,7 +140,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6vfDgb435d8cPeV1EZa6hak'
- 'Bearer Pa3cd5ZeE1gbh68D46vafVk'
controller: null
method: null
route: null
@ -182,19 +182,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: sit
example: mollitia
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: sit
name: mollitia
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"name":"Mr. Jayme Kuhlman DVM","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Susanna Stark","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -202,7 +202,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6gkaZVh3P5b81cf6ev4EdDa'
- 'Bearer 83Dfg6h4cdPev1abak5ZE6V'
controller: null
method: null
route: null
@ -253,7 +253,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bfeg4DZ566cvdP813kVhEaa'
- 'Bearer Z84d51aDbhgk36fEPvV6eac'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: servers
name: redirects
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all servers in a project.'
title: index
description: 'Get all redirects.'
authenticated: true
custom: []
headers:
@ -31,8 +31,30 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -41,7 +63,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Wyatt Powlowski IV","ssh_user":"vito","ip":"33.53.217.82","local_ip":"227.155.11.76","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":null,"last_update_check":null,"created_at":null,"updated_at":null},{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Guiseppe D''Amore","ssh_user":"vito","ip":"41.138.98.159","local_ip":"78.178.81.109","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":null,"last_update_check":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"site_id":null,"mode":301,"from":"error","to":"https:\/\/www.pfannerstill.com\/facere-est-totam-laudantium-in-illo-sequi","status":"ready","created_at":null,"updated_at":null},{"id":null,"site_id":null,"mode":301,"from":"repellat","to":"http:\/\/gislason.biz\/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -49,7 +71,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aaEkbd3D8gZ6f5v1ePhcV46'
- 'Bearer Pava668DdZfk4cVEg3eb5h1'
controller: null
method: null
route: null
@ -57,14 +79,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Create a new server.'
description: 'Create a new redirect.'
authenticated: true
custom: []
headers:
@ -82,14 +104,36 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The server provider type'
from:
name: from
description: ''
required: true
example: vel
type: string
@ -97,273 +141,38 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_provider:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
to:
name: to
description: ''
required: true
example: hetzner
example: ea
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
mode:
name: mode
description: ''
required: true
example: 307
type: string
enumValues:
- custom
- hetzner
- digitalocean
- linode
- vultr
exampleWasSpecified: false
nullable: false
custom: []
region:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: voluptatibus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
plan:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: ducimus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
ip:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: dolores
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: ratione
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the server.'
required: true
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
os:
name: os
description: 'The os of the server'
required: true
example: cumque
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
webserver:
name: webserver
description: 'Web server'
required: true
example: nginx
type: string
enumValues:
- none
- nginx
exampleWasSpecified: false
nullable: false
custom: []
database:
name: database
description: Database
required: true
example: mysql80
type: string
enumValues:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
exampleWasSpecified: false
nullable: false
custom: []
php:
name: php
description: 'PHP version'
required: true
example: '7.4'
type: string
enumValues:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
- 301
- 302
- 307
- 308
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: vel
server_provider: hetzner
region: voluptatibus
plan: ducimus
ip: dolores
port: ratione
name: in
os: cumque
webserver: nginx
database: mysql80
php: '7.4'
from: vel
to: ea
mode: 307
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Anissa McDermott","ssh_user":"vito","ip":"212.15.34.173","local_ip":"142.201.95.242","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6cgZPdbVD4fvae15khaE638'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a server by ID.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Newton Wintheiser Jr.","ssh_user":"vito","ip":"243.154.251.36","local_ip":"198.224.194.65","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer d5Ebc1ZeDv8aPk466aV3gfh'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: reboot
description: 'Reboot a server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
@ -372,69 +181,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vav31kZcfg86bdE6ha5DeP4'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: upgrade
description: 'Upgrade server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 14bV3dgZhD6cvEefkPa586a'
- 'Bearer 14Vg6Dce6aEh8kPbav5Z3fd'
controller: null
method: null
route: null
@ -442,14 +189,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete server.'
description: 'Delete a redirect.'
authenticated: true
custom: []
headers:
@ -477,9 +224,31 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
redirect_id:
name: redirect_id
description: 'The ID of the redirect.'
required: true
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
redirect_id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -496,7 +265,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vv6EbPh186eg3D5fadackZ4'
- 'Bearer vabZDk1c6fV46Ea3edhP8g5'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: server-providers
name: servers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/server-providers'
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
description: 'Get all servers in a project.'
authenticated: true
custom: []
headers:
@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"quaerat","provider":"aws","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":4,"project_id":null,"global":true,"name":"quas","provider":"vultr","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Consuelo Connelly","ssh_user":"vito","ip":"80.154.83.232","local_ip":"45.31.117.65","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":null,"last_update_check":null,"created_at":null,"updated_at":null},{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Rodolfo Fadel","ssh_user":"vito","ip":"103.227.79.93","local_ip":"33.49.217.56","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":null,"last_update_check":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aVP8e63k5D6ab1vdgEc4Zhf'
- 'Bearer 4kecVbv5Zaa3dE8D6fgP6h1'
controller: null
method: null
route: null
@ -57,14 +57,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/server-providers'
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
description: 'Create a new server.'
authenticated: true
custom: []
headers:
@ -89,9 +89,64 @@ endpoints:
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
description: 'The server provider type'
required: true
example: exercitationem
example: incidunt
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_provider:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
required: true
example: hetzner
type: string
enumValues:
- custom
- hetzner
- digitalocean
- linode
- vultr
exampleWasSpecified: false
nullable: false
custom: []
region:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: ut
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
plan:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: ullam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
ip:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: architecto
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: praesentium
type: string
enumValues: []
exampleWasSpecified: false
@ -99,55 +154,93 @@ endpoints:
custom: []
name:
name: name
description: 'The name of the server provider.'
description: 'The name of the server.'
required: true
example: similique
example: facere
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
os:
name: os
description: 'The os of the server'
required: true
example: nisi
example: illo
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
webserver:
name: webserver
description: 'Web server'
required: true
example: tempora
example: none
type: string
enumValues: []
enumValues:
- none
- nginx
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
database:
name: database
description: Database
required: true
example: earum
example: none
type: string
enumValues: []
enumValues:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
exampleWasSpecified: false
nullable: false
custom: []
php:
name: php
description: 'PHP version'
required: true
example: '8.1'
type: string
enumValues:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: exercitationem
name: similique
token: nisi
key: tempora
secret: earum
provider: incidunt
server_provider: hetzner
region: ut
plan: ullam
ip: architecto
port: praesentium
name: facere
os: illo
webserver: none
database: none
php: '8.1'
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"iure","provider":"hetzner","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Herbert VonRueden","ssh_user":"vito","ip":"91.154.105.143","local_ip":"62.75.177.7","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -155,7 +248,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b6DZavf4c3gk8PEda1e5hV6'
- 'Bearer 1d43hZc6VagPaEe5bDvf86k'
controller: null
method: null
route: null
@ -163,14 +256,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
uri: 'api/projects/{project_id}/servers/{id}'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
description: 'Get a server by ID.'
authenticated: true
custom: []
headers:
@ -188,11 +281,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
id:
name: id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -200,7 +293,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -209,7 +302,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"et","provider":"vultr","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Connie Simonis","ssh_user":"vito","ip":"202.119.26.253","local_ip":"112.75.79.203","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -217,22 +310,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6b6aVEPkfvZ81c3dD5ea4hg'
- 'Bearer 6648eab1kafVPDh5vEcgd3Z'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
title: reboot
description: 'Reboot a server.'
authenticated: true
custom: []
headers:
@ -250,11 +343,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -262,93 +355,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the server provider.'
required: true
example: porro
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: porro
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"aliquam","provider":"hetzner","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer fgVkbe8ZhPa1c4v5E6Da36d'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -365,7 +372,131 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 66Pfb5hE8gDVaZvkd1ec43a'
- 'Bearer heE6bdfa18v5Pa6kg4cZVD3'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: upgrade
description: 'Upgrade server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 4Ege66vbc1hka8DPaV5Zfd3'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer v3ceb6d6V1aDk584EhgfaZP'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: ssh-keys
name: server-providers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
uri: 'api/projects/{project_id}/server-providers'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all ssh keys.'
description: ''
authenticated: true
custom: []
headers:
@ -31,19 +31,8 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -52,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"user":null,"name":"Dr. Virgie Reilly","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Horace Gutmann","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"id","provider":"custom","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":4,"project_id":null,"global":true,"name":"culpa","provider":"linode","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vPhZkafdEa8b665e134cgVD'
- 'Bearer f1ebaVgEP3vahDk6dc58Z64'
controller: null
method: null
route: null
@ -68,14 +57,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
uri: 'api/projects/{project_id}/server-providers'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Deploy ssh key to server.'
description: ''
authenticated: true
custom: []
headers:
@ -93,27 +82,16 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
key_id:
name: key_id
description: 'The ID of the key.'
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: et
example: mollitia
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +99,27 @@ endpoints:
custom: []
name:
name: name
description: 'Key name, required if key_id is not provided.'
description: 'The name of the server provider.'
required: true
example: adipisci
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: animi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
required: true
example: provident
type: string
@ -129,25 +127,27 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
public_key:
name: public_key
description: 'Public Key, required if key_id is not provided.'
secret:
name: secret
description: 'The secret if provider requires key'
required: true
example: incidunt
example: deserunt
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: et
name: provident
public_key: incidunt
provider: mollitia
name: adipisci
token: animi
key: provident
secret: deserunt
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"user":null,"name":"Miss Penelope Sipes IV","created_at":null,"updated_at":null}'
content: '{"id":3,"project_id":null,"global":true,"name":"et","provider":"vultr","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -155,22 +155,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 5aah3b6PdVkc4efv6Eg81ZD'
- 'Bearer agE4kv6Zc1d36PVhDaf5e8b'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}'
- GET
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete ssh key from server.'
title: show
description: ''
authenticated: true
custom: []
headers:
@ -188,19 +188,9 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sshKey_id:
name: sshKey_id
description: 'The ID of the sshKey.'
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
@ -210,8 +200,155 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
sshKey_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"ab","provider":"digitalocean","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 815vc6eDEgZVPkah4fdba36'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the server provider.'
required: true
example: eveniet
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: eveniet
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"expedita","provider":"aws","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 48kfEV6ahDaP63bgcZ51evd'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -228,7 +365,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dh8a1gacZ366k5Pev4fbEdV'
- 'Bearer P6g4av8DcaV6fdZ3k1hb5eE'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: services
name: ssh-keys
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/services'
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all services.'
description: 'Get all ssh keys.'
authenticated: true
custom: []
headers:
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"user":null,"name":"Dr. Pansy Kunde DVM","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Ms. Maximillia DuBuque Sr.","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,22 +60,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dbcd346g8EfZ5aheaVvkP16'
- 'Bearer 3Dah456fdP8kVbZ6vEag1ec'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/services/{id}'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a service by ID.'
title: create
description: 'Deploy ssh key to server.'
authenticated: true
custom: []
headers:
@ -103,29 +103,51 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the service.'
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
key_id:
name: key_id
description: 'The ID of the key.'
required: true
example: 169
type: integer
example: debitis
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
name:
name: name
description: 'Key name, required if key_id is not provided.'
required: true
example: illum
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
public_key:
name: public_key
description: 'Public Key, required if key_id is not provided.'
required: true
example: dignissimos
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: debitis
name: illum
public_key: dignissimos
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"user":null,"name":"Uriah Harvey","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -133,372 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hd8bE5aD6v4Vc16af3kgPeZ'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/start'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: start
description: 'Start service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer agcvkPdfe56aZ14EV6b8D3h'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: stop
description: 'Stop service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer bvVga83Dh1f6ackP46e5ZdE'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: restart
description: 'Restart service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 8PD5cVdfv3a1bh46e6EZagk'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: enable
description: 'Enable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer a485achPEDe63bgVk16vZdf'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: disable
description: 'Disable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6ZePf1dc346k8h5DvaEbaVg'
- 'Bearer 8bkv164ZVPcE5gde3faa6Dh'
controller: null
method: null
route: null
@ -506,14 +163,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete service.'
description: 'Delete ssh key from server.'
authenticated: true
custom: []
headers:
@ -541,11 +198,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
sshKey_id:
name: sshKey_id
description: 'The ID of the sshKey.'
required: true
example: 169
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -554,7 +211,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
sshKey_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -571,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 48fP63b1hckda6vaZEVeg5D'
- 'Bearer 18P65Da6Vdh3e4cZgfkvabE'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: sites
name: services
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
uri: 'api/projects/{project_id}/servers/{server_id}/services'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all sites.'
description: 'Get all services.'
authenticated: true
custom: []
headers:
@ -52,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -60,212 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3V64fhkdgEvD5Z1cP6aea8b'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Create a new site.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
type:
name: type
description: ''
required: true
example: php-blank
type: string
enumValues:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
domain:
name: domain
description: ''
required: true
example: harum
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
aliases:
name: aliases
description: ''
required: true
example:
- voluptatem
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
php_version:
name: php_version
description: 'One of the installed PHP Versions'
required: true
example: '7.4'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
web_directory:
name: web_directory
description: 'Required for PHP and Laravel sites'
required: true
example: public
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
source_control:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: amet
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
repository:
name: repository
description: 'Repository, Required for Sites which support source control'
required: true
example: organization/repository
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
branch:
name: branch
description: 'Branch, Required for Sites which support source control'
required: true
example: main
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
composer:
name: composer
description: 'Run composer if site supports composer'
required: true
example: true
type: boolean
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
version:
name: version
description: 'Version, if the site type requires a version like PHPMyAdmin'
required: true
example: 5.2.1
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: et
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: least-connections
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
type: php-blank
domain: harum
aliases:
- voluptatem
php_version: '7.4'
web_directory: public
source_control: amet
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: et
method: least-connections
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer EVDP3fa1vga8Zk5cd466ebh'
- 'Bearer c4d6561av3ehkVagPfZb8DE'
controller: null
method: null
route: null
@ -273,14 +68,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{id}'
uri: 'api/projects/{project_id}/servers/{server_id}/services/{id}'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a site by ID.'
description: 'Get a service by ID.'
authenticated: true
custom: []
headers:
@ -310,9 +105,9 @@ endpoints:
custom: []
id:
name: id
description: 'The ID of the site.'
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -321,7 +116,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
id: 43
id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -330,7 +125,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -338,80 +133,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b3h4Zegva1kEcdVfD8P5a66'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete site.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer cDe1b4f6a63EagP5vkdZ8Vh'
- 'Bearer 8ab6dPD5gh1EZfk36vaVe4c'
controller: null
method: null
route: null
@ -419,14 +141,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/start'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
title: start
description: 'Start service.'
authenticated: true
custom: []
headers:
@ -454,11 +176,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -467,208 +189,11 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- accusantium
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: ip-hash
servers:
- accusantium
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer e65dDaaP6V4E3Zcf8hgvkb1'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: aliases
description: 'Update aliases.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters:
aliases:
name: aliases
description: 'Array of aliases'
required: true
example:
- ut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
aliases:
- ut
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer aedPZ4ah68c3Ef1kDVbvg65'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Update site deployment script'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters:
script:
name: script
description: 'Content of the deployment script'
required: true
example: culpa
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
script: culpa
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
@ -681,22 +206,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fhVea1a3cPdk6g5Ev468DZb'
- 'Bearer 1VDa6ckv35hgZ8d6Eb4Pafe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Get site deployment script content'
title: stop
description: 'Stop service.'
authenticated: true
custom: []
headers:
@ -724,11 +249,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -737,7 +262,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -745,7 +270,7 @@ endpoints:
fileParameters: []
responses:
-
status: 200
status: 204
content: null
headers: []
description: ''
@ -754,7 +279,299 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1g3bfhd6c8aPV6aZD45eEvk'
- 'Bearer V4d1k6b5hae3fcZDa6g8PvE'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: restart
description: 'Restart service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer g84c6eEZP3k5fvV6baD1had'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: enable
description: 'Enable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer fE4V65h18acdkgbv3Za6PDe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: disable
description: 'Disable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer gaEcPZ83ka1v65bVfh4d6eD'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 8Va1aEehb5kg3P64ZdvDcf6'
controller: null
method: null
route: null

View File

@ -1,19 +1,19 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: source-controls
name: sites
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls'
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
description: 'Get all sites.'
authenticated: true
custom: []
headers:
@ -31,8 +31,19 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -41,7 +52,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Amya Jones","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Jerry Donnelly","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -49,7 +60,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Pvgec6k58a4fZa6D1Vd3hEb'
- 'Bearer d8Ev3Pce54gkZ6h6faVb1Da'
controller: null
method: null
route: null
@ -57,14 +68,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/source-controls'
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
description: 'Create a new site.'
authenticated: true
custom: []
headers:
@ -82,86 +93,171 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The provider'
type:
name: type
description: ''
required: true
example: bitbucket
example: phpmyadmin
type: string
enumValues:
- gitlab
- github
- bitbucket
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the storage provider.'
domain:
name: domain
description: ''
required: true
example: eligendi
example: tenetur
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
aliases:
name: aliases
description: ''
required: true
example: debitis
example:
- aut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
php_version:
name: php_version
description: 'One of the installed PHP Versions'
required: true
example: '7.4'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
web_directory:
name: web_directory
description: 'Required for PHP and Laravel sites'
required: true
example: 'http://fahey.com/aliquid-sapiente-labore-adipisci-eum-laborum'
example: public
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
source_control:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: rerum
example: quasi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
repository:
name: repository
description: 'Repository, Required for Sites which support source control'
required: true
example: 'wBK}NHxV:x'
example: organization/repository
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
branch:
name: branch
description: 'Branch, Required for Sites which support source control'
required: true
example: main
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
composer:
name: composer
description: 'Run composer if site supports composer'
required: true
example: true
type: boolean
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
version:
name: version
description: 'Version, if the site type requires a version like PHPMyAdmin'
required: true
example: 5.2.1
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: deleniti
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: round-robin
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: bitbucket
name: eligendi
token: debitis
url: 'http://fahey.com/aliquid-sapiente-labore-adipisci-eum-laborum'
username: rerum
password: 'wBK}NHxV:x'
type: phpmyadmin
domain: tenetur
aliases:
- aut
php_version: '7.4'
web_directory: public
source_control: quasi
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: deleniti
method: round-robin
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Dr. Janae Tremblay PhD","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -169,7 +265,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer eaD3hgavbcE61f46VdkZP58'
- 'Bearer ge6VPfkE8cah6Dv34bda15Z'
controller: null
method: null
route: null
@ -177,14 +273,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{id}'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
description: 'Get a site by ID.'
authenticated: true
custom: []
headers:
@ -202,11 +298,21 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the site.'
required: true
example: 12
type: integer
enumValues: []
exampleWasSpecified: false
@ -214,7 +320,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
server_id: 29
id: 12
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -223,7 +330,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Marguerite Aufderhar","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -231,137 +338,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer g653Ph4VaebdE1Z6cakfDv8'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the storage provider.'
required: true
example: blanditiis
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: non
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://www.veum.com/eum-voluptas-non-rem-non-rerum-tempora-quam'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: porro
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: '>BW~{`#d,}=U!XxC!t]'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: blanditiis
token: non
url: 'https://www.veum.com/eum-voluptas-non-rem-non-rerum-tempora-quam'
username: porro
password: '>BW~{`#d,}=U!XxC!t]'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Johan Crooks","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 1g3ZV5haeEa8dD6kcv6bf4P'
- 'Bearer a14kPe3b6fvd6ZgahEVc58D'
controller: null
method: null
route: null
@ -369,14 +346,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
description: 'Delete site.'
authenticated: true
custom: []
headers:
@ -394,11 +371,21 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
@ -406,7 +393,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
server_id: 29
site_id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -423,7 +411,350 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer de684Vav1kf3PbaDg6hEZc5'
- 'Bearer cvfD853h4EZae6dab6gVPk1'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 19
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 19
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- dolores
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: ip-hash
servers:
- dolores
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer de5Vka1avb6Zg36fDE8Ph4c'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: aliases
description: 'Update aliases.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters:
aliases:
name: aliases
description: 'Array of aliases'
required: true
example:
- aut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
aliases:
- aut
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6f6kVD153hEgPdZacva4b8e'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Update site deployment script'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
script:
name: script
description: 'Content of the deployment script'
required: true
example: qui
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
script: qui
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 3b6Eh5eaf1d48DZvPgk6cVa'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Get site deployment script content'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer v1kEa3hgb664dfD5Z8VePac'
controller: null
method: null
route: null

View File

@ -1,14 +1,14 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: storage-providers
name: source-controls
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers'
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -41,7 +41,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"sit","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":6,"project_id":null,"global":true,"name":"repudiandae","provider":"local","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Emil Leannon","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Eleazar Pacocha Sr.","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -49,7 +49,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer EbkDP1Z3aVav8g6ef6dc5h4'
- 'Bearer a34dVDE5ak8ceZvfh1Pb66g'
controller: null
method: null
route: null
@ -57,9 +57,9 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/storage-providers'
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -89,11 +89,14 @@ endpoints:
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
description: 'The provider'
required: true
example: est
example: github
type: string
enumValues: []
enumValues:
- gitlab
- github
- bitbucket
exampleWasSpecified: false
nullable: false
custom: []
@ -101,7 +104,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: id
example: aliquam
type: string
enumValues: []
exampleWasSpecified: false
@ -111,43 +114,54 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: repellendus
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: ducimus
example: 'https://brown.org/placeat-optio-illum-eius-ipsa.html'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: possimus
example: a
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: "_/_,9'/6z;9"
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: est
name: id
token: repellendus
key: ducimus
secret: possimus
provider: github
name: aliquam
token: voluptatem
url: 'https://brown.org/placeat-optio-illum-eius-ipsa.html'
username: a
password: "_/_,9'/6z;9"
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"sequi","provider":"dropbox","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Ahmad Kulas","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -155,7 +169,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 45kVPD6ec6hvga83bfa1dEZ'
- 'Bearer 65dacDVh4kevfZ8P1bEga36'
controller: null
method: null
route: null
@ -163,9 +177,9 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -188,11 +202,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -200,7 +214,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -209,7 +223,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"alias","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Mr. Marquis Kunde IV","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -217,7 +231,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ahb6gDd8fv3P1ak6cEe4V5Z'
- 'Bearer a8hf6adecDkVbEZ6P1g54v3'
controller: null
method: null
route: null
@ -225,9 +239,9 @@ endpoints:
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -250,11 +264,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -262,7 +276,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -270,7 +284,47 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: ullam
example: laudantium
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: nulla
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'http://wiza.com/'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: numquam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'MlD,$m:8^A'
type: string
enumValues: []
exampleWasSpecified: false
@ -280,7 +334,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: true
example: false
type: string
enumValues:
- true
@ -289,13 +343,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: ullam
global: true
name: laudantium
token: nulla
url: 'http://wiza.com/'
username: numquam
password: 'MlD,$m:8^A'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"at","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Mrs. Arvilla Mitchell","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -303,7 +361,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer a8Vgfvh5abkd616eDZ43cPE'
- 'Bearer Z36EdDbavkeVPch68a1g45f'
controller: null
method: null
route: null
@ -311,9 +369,9 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -336,11 +394,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -348,7 +406,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -365,7 +423,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer kDheaPEvb61Va564dZc8f3g'
- 'Bearer gaadhb6Ev6Dk8fc4P1eV53Z'
controller: null
method: null
route: null

View File

@ -0,0 +1,372 @@
## Autogenerated by Scribe. DO NOT MODIFY.
name: storage-providers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"autem","provider":"s3","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":6,"project_id":null,"global":true,"name":"nihil","provider":"ftp","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer c8gDkZ1563Va4dvb6EaefPh'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/storage-providers'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: est
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the storage provider.'
required: true
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: delectus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
required: true
example: natus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
required: true
example: saepe
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: est
name: voluptatem
token: delectus
key: natus
secret: saepe
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"omnis","provider":"local","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer g8aVh3evPZ5dkDfac14b66E'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"molestiae","provider":"dropbox","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 184aP6ce6b5VfdZv3hDakEg'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the storage provider.'
required: true
example: exercitationem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: true
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: exercitationem
global: true
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"dolorum","provider":"s3","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer dav4Dh6Pgb35ckEa81f6VZe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 84vcE35a6dDZgak1ehVP6fb'
controller: null
method: null
route: null
custom: []

View File

@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer PahVdEb56Z3f14kDgc68aev'
- 'Bearer 46fadkVc1vP5Ea8hg3bZeD6'
controller: null
method: null
route: null
@ -111,7 +111,7 @@ endpoints:
name: command
description: ''
required: true
example: qui
example: sit
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: user
description: ''
required: true
example: vito
example: root
type: string
enumValues:
- root
@ -140,8 +140,8 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
command: qui
user: vito
command: sit
user: root
frequency: '* * * * *'
fileParameters: []
responses:
@ -155,7 +155,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer agkPEVc3h6D1d6a8evfZb54'
- 'Bearer eaEVDZ1ka5v4hf6Pgcd386b'
controller: null
method: null
route: null
@ -202,7 +202,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 17
example: 13
type: integer
enumValues: []
exampleWasSpecified: false
@ -211,7 +211,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
cronJob_id: 17
cronJob_id: 13
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -228,7 +228,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b518EePkVcdhDvZaf6643ga'
- 'Bearer gZkc1Vh568badDefE64vPa3'
controller: null
method: null
route: null
@ -275,7 +275,7 @@ endpoints:
name: cronJob_id
description: 'The ID of the cronJob.'
required: true
example: 11
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
@ -284,7 +284,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
cronJob_id: 11
cronJob_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -301,7 +301,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3cak566dDhPvV8eZafg4bE1'
- 'Bearer PceD65b61vaV8Eg3a4dkfhZ'
controller: null
method: null
route: null

View File

@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"name":"joyce53","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"eric55","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"name":"fkrajcik","status":"ready","created_at":null,"updated_at":null},{"id":null,"server_id":null,"name":"critchie","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vegcPa1dk6f435E68ZbhaVD'
- 'Bearer aZvgeV364fd8b6a5EDchP1k'
controller: null
method: null
route: null
@ -111,7 +111,7 @@ endpoints:
name: name
description: ''
required: true
example: debitis
example: esse
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: charset
description: ''
required: true
example: maxime
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -131,21 +131,21 @@ endpoints:
name: collation
description: ''
required: true
example: sed
example: labore
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: debitis
charset: maxime
collation: sed
name: esse
charset: ut
collation: labore
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"brekke.isabell","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"cory33","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vk1fhea8caEg4dvD35PbZ66'
- 'Bearer fVvDPc64eaEk5bd36hgZ18a'
controller: null
method: null
route: null
@ -200,7 +200,7 @@ endpoints:
name: id
description: 'The ID of the database.'
required: true
example: 11
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
@ -209,7 +209,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
id: 11
id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -218,7 +218,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"name":"vandervort.emmalee","status":"ready","created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"name":"walter.jacey","status":"ready","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -226,7 +226,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer av45D6PehEdbZVgc381akf6'
- 'Bearer bvcEZgDaPfd564V18ahek63'
controller: null
method: null
route: null
@ -273,7 +273,7 @@ endpoints:
name: database_id
description: 'The ID of the database.'
required: true
example: 5
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
@ -282,7 +282,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
database_id: 5
database_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -299,7 +299,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hDa6EdgkP84fcV61baZ3v5e'
- 'Bearer 4a68DgeP6vcZbfVkh5a3d1E'
controller: null
method: null
route: null

View File

@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"username":"lehner.eloy","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"rlowe","databases":[],"host":"%","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"username":"imurray","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"username":"raleigh.heidenreich","databases":[],"host":"%","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3Da5E66PfZgdb81vkceah4V'
- 'Bearer Ebak4v1cZPe5hd66D8V3gfa'
controller: null
method: null
route: null
@ -111,7 +111,7 @@ endpoints:
name: username
description: ''
required: true
example: voluptas
example: ut
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: password
description: ''
required: true
example: ':D+e=/;H,'
example: "L&1)4X-w>&T=:'Y2#x"
type: string
enumValues: []
exampleWasSpecified: false
@ -138,14 +138,14 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
username: voluptas
password: ':D+e=/;H,'
username: ut
password: "L&1)4X-w>&T=:'Y2#x"
host: '%'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"fahey.joseph","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"kbernhard","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -153,7 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer DvPa3c6f5Edbagh8kVe41Z6'
- 'Bearer E4kahacZv6VDg81e6f3P5db'
controller: null
method: null
route: null
@ -200,7 +200,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 19
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -209,7 +209,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 19
databaseUser_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -218,7 +218,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"szboncak","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"lavada.casper","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -226,7 +226,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer VvDgd431cbE68heZ5fa6kaP'
- 'Bearer 3DgPZadcaf6h5bk4Vv8E61e'
controller: null
method: null
route: null
@ -273,7 +273,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 11
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
@ -282,7 +282,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 11
databaseUser_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -290,19 +290,19 @@ endpoints:
name: databases
description: 'Array of database names to link to the user.'
required: true
example: accusantium
example: laboriosam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
databases: accusantium
databases: laboriosam
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"username":"smith.liliana","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"username":"ojerde","databases":[],"host":"%","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -310,7 +310,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1ZaahDcVeEvf6kd58P346gb'
- 'Bearer Deh4d1aa586ZgckPvE3bV6f'
controller: null
method: null
route: null
@ -357,7 +357,7 @@ endpoints:
name: databaseUser_id
description: 'The ID of the databaseUser.'
required: true
example: 18
example: 8
type: integer
enumValues: []
exampleWasSpecified: false
@ -366,7 +366,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
databaseUser_id: 18
databaseUser_id: 8
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -383,7 +383,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6g31ZcdV68bDfEaak54vePh'
- 'Bearer Pcd366f5egE1hVba8aZk4vD'
controller: null
method: null
route: null

View File

@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"name":"ea","server_id":null,"type":"allow","protocol":"tcp","port":41910,"source":"202.183.211.242","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"iusto","server_id":null,"type":"allow","protocol":"tcp","port":60689,"source":"227.149.61.57","mask":24,"note":"test","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"name":"optio","server_id":null,"type":"allow","protocol":"tcp","port":52674,"source":"142.10.115.135","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null},{"id":null,"name":"dolores","server_id":null,"type":"allow","protocol":"tcp","port":34607,"source":"20.175.64.76","mask":24,"note":"test","status":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8g15h66aPf3ZdvkEab4ceVD'
- 'Bearer vhcgVk5aa8de6fP3Z4E1Db6'
controller: null
method: null
route: null
@ -111,7 +111,7 @@ endpoints:
name: name
description: ''
required: true
example: autem
example: voluptas
type: string
enumValues: []
exampleWasSpecified: false
@ -121,7 +121,7 @@ endpoints:
name: type
description: ''
required: true
example: allow
example: deny
type: string
enumValues:
- allow
@ -133,7 +133,7 @@ endpoints:
name: protocol
description: ''
required: true
example: tcp
example: udp
type: string
enumValues:
- tcp
@ -145,7 +145,7 @@ endpoints:
name: port
description: ''
required: true
example: quas
example: qui
type: string
enumValues: []
exampleWasSpecified: false
@ -155,7 +155,7 @@ endpoints:
name: source
description: ''
required: false
example: blanditiis
example: amet
type: string
enumValues: []
exampleWasSpecified: false
@ -172,17 +172,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: autem
type: allow
protocol: tcp
port: quas
source: blanditiis
name: voluptas
type: deny
protocol: udp
port: qui
source: amet
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"in","server_id":null,"type":"allow","protocol":"tcp","port":13253,"source":"245.228.81.208","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"molestiae","server_id":null,"type":"allow","protocol":"tcp","port":26783,"source":"190.202.255.27","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -190,7 +190,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 8dhcE436Zbk6fgVDP1aa5ev'
- 'Bearer Z166cP5kab3eEhgD48Vvafd'
controller: null
method: null
route: null
@ -254,7 +254,7 @@ endpoints:
name: name
description: ''
required: true
example: earum
example: et
type: string
enumValues: []
exampleWasSpecified: false
@ -288,7 +288,7 @@ endpoints:
name: port
description: ''
required: true
example: ab
example: rerum
type: string
enumValues: []
exampleWasSpecified: false
@ -298,7 +298,7 @@ endpoints:
name: source
description: ''
required: false
example: possimus
example: sed
type: string
enumValues: []
exampleWasSpecified: false
@ -315,17 +315,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: earum
name: et
type: allow
protocol: tcp
port: ab
source: possimus
port: rerum
source: sed
mask: '0'
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"name":"repudiandae","server_id":null,"type":"allow","protocol":"tcp","port":44250,"source":"243.200.88.169","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"labore","server_id":null,"type":"allow","protocol":"tcp","port":29044,"source":"113.132.217.224","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -333,7 +333,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ag6ebf3456hVkd8ca1PvEDZ'
- 'Bearer 6P31Vc845vhEbkaagZdDfe6'
controller: null
method: null
route: null
@ -398,7 +398,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"name":"quam","server_id":null,"type":"allow","protocol":"tcp","port":62505,"source":"73.254.77.244","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"name":"ipsa","server_id":null,"type":"allow","protocol":"tcp","port":50679,"source":"42.114.67.31","mask":24,"note":"test","status":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -406,7 +406,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Paagd6D6fV5v4kZ31ebc8hE'
- 'Bearer VdDb3eEaagvh68Z1kc5fP46'
controller: null
method: null
route: null
@ -479,7 +479,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer avf16Vhb43dacPZge6D5k8E'
- 'Bearer ak3db6vef1DVEhacZ85g64P'
controller: null
method: null
route: null

View File

@ -32,7 +32,7 @@ endpoints:
cache-control: 'no-cache, private'
content-type: application/json
x-ratelimit-limit: '60'
x-ratelimit-remaining: '59'
x-ratelimit-remaining: '58'
access-control-allow-origin: '*'
description: null
custom: []

View File

@ -28,7 +28,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"name":"Amara Jaskolski","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":4,"name":"Christy Kohler","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":3,"name":"Kattie Haley","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":4,"name":"Kailyn Kiehn","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -36,7 +36,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 5v83ePa1dah4bcE6VgfZDk6'
- 'Bearer 6D5kabfhdagZcP61VEe48v3'
controller: null
method: null
route: null
@ -67,19 +67,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: temporibus
example: excepturi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: temporibus
name: excepturi
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"name":"Prof. Enrico Wehner Sr.","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Dayne White","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -87,7 +87,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Zk61vE43aagDbc5V68edhPf'
- 'Bearer 1Vafe4abk6gvZE5dD36h8Pc'
controller: null
method: null
route: null
@ -130,7 +130,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"name":"Zoie Feest","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Cheyenne Ankunding III","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -138,7 +138,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6vfDgb435d8cPeV1EZa6hak'
- 'Bearer Pa3cd5ZeE1gbh68D46vafVk'
controller: null
method: null
route: null
@ -180,19 +180,19 @@ endpoints:
name: name
description: 'The name of the project.'
required: true
example: sit
example: mollitia
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: sit
name: mollitia
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"name":"Mr. Jayme Kuhlman DVM","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":3,"name":"Susanna Stark","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -200,7 +200,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6gkaZVh3P5b81cf6ev4EdDa'
- 'Bearer 83Dfg6h4cdPev1abak5ZE6V'
controller: null
method: null
route: null
@ -251,7 +251,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer bfeg4DZ566cvdP813kVhEaa'
- 'Bearer Z84d51aDbhgk36fEPvV6eac'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: servers
name: redirects
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all servers in a project.'
title: index
description: 'Get all redirects.'
authenticated: true
custom: []
headers:
@ -29,8 +29,30 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -39,7 +61,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Wyatt Powlowski IV","ssh_user":"vito","ip":"33.53.217.82","local_ip":"227.155.11.76","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":null,"last_update_check":null,"created_at":null,"updated_at":null},{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Guiseppe D''Amore","ssh_user":"vito","ip":"41.138.98.159","local_ip":"78.178.81.109","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":null,"last_update_check":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"site_id":null,"mode":301,"from":"error","to":"https:\/\/www.pfannerstill.com\/facere-est-totam-laudantium-in-illo-sequi","status":"ready","created_at":null,"updated_at":null},{"id":null,"site_id":null,"mode":301,"from":"repellat","to":"http:\/\/gislason.biz\/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html","status":"ready","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -47,7 +69,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aaEkbd3D8gZ6f5v1ePhcV46'
- 'Bearer Pava668DdZfk4cVEg3eb5h1'
controller: null
method: null
route: null
@ -55,14 +77,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Create a new server.'
description: 'Create a new redirect.'
authenticated: true
custom: []
headers:
@ -80,14 +102,36 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The server provider type'
from:
name: from
description: ''
required: true
example: vel
type: string
@ -95,273 +139,38 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_provider:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
to:
name: to
description: ''
required: true
example: hetzner
example: ea
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
mode:
name: mode
description: ''
required: true
example: 307
type: string
enumValues:
- custom
- hetzner
- digitalocean
- linode
- vultr
exampleWasSpecified: false
nullable: false
custom: []
region:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: voluptatibus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
plan:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: ducimus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
ip:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: dolores
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: ratione
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the server.'
required: true
example: in
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
os:
name: os
description: 'The os of the server'
required: true
example: cumque
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
webserver:
name: webserver
description: 'Web server'
required: true
example: nginx
type: string
enumValues:
- none
- nginx
exampleWasSpecified: false
nullable: false
custom: []
database:
name: database
description: Database
required: true
example: mysql80
type: string
enumValues:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
exampleWasSpecified: false
nullable: false
custom: []
php:
name: php
description: 'PHP version'
required: true
example: '7.4'
type: string
enumValues:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
- 301
- 302
- 307
- 308
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: vel
server_provider: hetzner
region: voluptatibus
plan: ducimus
ip: dolores
port: ratione
name: in
os: cumque
webserver: nginx
database: mysql80
php: '7.4'
from: vel
to: ea
mode: 307
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Anissa McDermott","ssh_user":"vito","ip":"212.15.34.173","local_ip":"142.201.95.242","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6cgZPdbVD4fvae15khaE638'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a server by ID.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Prof. Newton Wintheiser Jr.","ssh_user":"vito","ip":"243.154.251.36","local_ip":"198.224.194.65","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer d5Ebc1ZeDv8aPk466aV3gfh'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: reboot
description: 'Reboot a server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
@ -370,69 +179,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vav31kZcfg86bdE6ha5DeP4'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: upgrade
description: 'Upgrade server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 14bV3dgZhD6cvEefkPa586a'
- 'Bearer 14Vg6Dce6aEh8kPbav5Z3fd'
controller: null
method: null
route: null
@ -440,14 +187,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/redirects/{redirect_id}'
metadata:
groupName: servers
groupName: redirects
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete server.'
description: 'Delete a redirect.'
authenticated: true
custom: []
headers:
@ -475,9 +222,31 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 11
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
redirect_id:
name: redirect_id
description: 'The ID of the redirect.'
required: true
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 11
redirect_id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -494,7 +263,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Vv6EbPh186eg3D5fadackZ4'
- 'Bearer vabZDk1c6fV46Ea3edhP8g5'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: server-providers
name: servers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/server-providers'
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
description: 'Get all servers in a project.'
authenticated: true
custom: []
headers:
@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"quaerat","provider":"aws","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":4,"project_id":null,"global":true,"name":"quas","provider":"vultr","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Consuelo Connelly","ssh_user":"vito","ip":"80.154.83.232","local_ip":"45.31.117.65","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":null,"last_update_check":null,"created_at":null,"updated_at":null},{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Rodolfo Fadel","ssh_user":"vito","ip":"103.227.79.93","local_ip":"33.49.217.56","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":null,"last_update_check":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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer aVP8e63k5D6ab1vdgEc4Zhf'
- 'Bearer 4kecVbv5Zaa3dE8D6fgP6h1'
controller: null
method: null
route: null
@ -55,14 +55,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/server-providers'
uri: 'api/projects/{project_id}/servers'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
description: 'Create a new server.'
authenticated: true
custom: []
headers:
@ -87,9 +87,64 @@ endpoints:
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
description: 'The server provider type'
required: true
example: exercitationem
example: incidunt
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_provider:
name: server_provider
description: 'If the provider is not custom, the ID of the server provider profile'
required: true
example: hetzner
type: string
enumValues:
- custom
- hetzner
- digitalocean
- linode
- vultr
exampleWasSpecified: false
nullable: false
custom: []
region:
name: region
description: 'Provider region if the provider is not custom'
required: true
example: ut
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
plan:
name: plan
description: 'Provider plan if the provider is not custom'
required: true
example: ullam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
ip:
name: ip
description: 'SSH IP address if the provider is custom'
required: true
example: architecto
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
port:
name: port
description: 'SSH Port if the provider is custom'
required: true
example: praesentium
type: string
enumValues: []
exampleWasSpecified: false
@ -97,55 +152,93 @@ endpoints:
custom: []
name:
name: name
description: 'The name of the server provider.'
description: 'The name of the server.'
required: true
example: similique
example: facere
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
os:
name: os
description: 'The os of the server'
required: true
example: nisi
example: illo
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
webserver:
name: webserver
description: 'Web server'
required: true
example: tempora
example: none
type: string
enumValues: []
enumValues:
- none
- nginx
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
database:
name: database
description: Database
required: true
example: earum
example: none
type: string
enumValues: []
enumValues:
- none
- mysql57
- mysql80
- mariadb103
- mariadb104
- mariadb103
- postgresql12
- postgresql13
- postgresql14
- postgresql15
- postgresql16
exampleWasSpecified: false
nullable: false
custom: []
php:
name: php
description: 'PHP version'
required: true
example: '8.1'
type: string
enumValues:
- '7.0'
- '7.1'
- '7.2'
- '7.3'
- '7.4'
- '8.0'
- '8.1'
- '8.2'
- '8.3'
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: exercitationem
name: similique
token: nisi
key: tempora
secret: earum
provider: incidunt
server_provider: hetzner
region: ut
plan: ullam
ip: architecto
port: praesentium
name: facere
os: illo
webserver: none
database: none
php: '8.1'
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"iure","provider":"hetzner","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Herbert VonRueden","ssh_user":"vito","ip":"91.154.105.143","local_ip":"62.75.177.7","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -153,7 +246,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b6DZavf4c3gk8PEda1e5hV6'
- 'Bearer 1d43hZc6VagPaEe5bDvf86k'
controller: null
method: null
route: null
@ -161,14 +254,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
uri: 'api/projects/{project_id}/servers/{id}'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
description: 'Get a server by ID.'
authenticated: true
custom: []
headers:
@ -186,11 +279,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
id:
name: id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -198,7 +291,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -207,7 +300,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"et","provider":"vultr","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"project_id":null,"user_id":null,"provider_id":null,"name":"Connie Simonis","ssh_user":"vito","ip":"202.119.26.253","local_ip":"112.75.79.203","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":null,"last_update_check":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -215,22 +308,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 6b6aVEPkfvZ81c3dD5ea4hg'
- 'Bearer 6648eab1kafVPDh5vEcgd3Z'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/reboot'
metadata:
groupName: server-providers
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
title: reboot
description: 'Reboot a server.'
authenticated: true
custom: []
headers:
@ -248,11 +341,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
@ -260,93 +353,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the server provider.'
required: true
example: porro
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: porro
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"aliquam","provider":"hetzner","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer fgVkbe8ZhPa1c4v5E6Da36d'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -363,7 +370,131 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 66Pfb5hE8gDVaZvkd1ec43a'
- 'Bearer heE6bdfa18v5Pa6kg4cZVD3'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/upgrade'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: upgrade
description: 'Upgrade server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 4Ege66vbc1hka8DPaV5Zfd3'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}'
metadata:
groupName: servers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete server.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer v3ceb6d6V1aDk584EhgfaZP'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: ssh-keys
name: server-providers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
uri: 'api/projects/{project_id}/server-providers'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all ssh keys.'
description: ''
authenticated: true
custom: []
headers:
@ -29,19 +29,8 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -50,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"user":null,"name":"Dr. Virgie Reilly","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Horace Gutmann","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":3,"project_id":null,"global":true,"name":"id","provider":"custom","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":4,"project_id":null,"global":true,"name":"culpa","provider":"linode","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer vPhZkafdEa8b665e134cgVD'
- 'Bearer f1ebaVgEP3vahDk6dc58Z64'
controller: null
method: null
route: null
@ -66,14 +55,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
uri: 'api/projects/{project_id}/server-providers'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Deploy ssh key to server.'
description: ''
authenticated: true
custom: []
headers:
@ -91,27 +80,16 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
key_id:
name: key_id
description: 'The ID of the key.'
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: et
example: mollitia
type: string
enumValues: []
exampleWasSpecified: false
@ -119,7 +97,27 @@ endpoints:
custom: []
name:
name: name
description: 'Key name, required if key_id is not provided.'
description: 'The name of the server provider.'
required: true
example: adipisci
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: animi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
required: true
example: provident
type: string
@ -127,25 +125,27 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
public_key:
name: public_key
description: 'Public Key, required if key_id is not provided.'
secret:
name: secret
description: 'The secret if provider requires key'
required: true
example: incidunt
example: deserunt
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: et
name: provident
public_key: incidunt
provider: mollitia
name: adipisci
token: animi
key: provident
secret: deserunt
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"user":null,"name":"Miss Penelope Sipes IV","created_at":null,"updated_at":null}'
content: '{"id":3,"project_id":null,"global":true,"name":"et","provider":"vultr","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -153,22 +153,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 5aah3b6PdVkc4efv6Eg81ZD'
- 'Bearer agE4kv6Zc1d36PVhDaf5e8b'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}'
- GET
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: ssh-keys
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete ssh key from server.'
title: show
description: ''
authenticated: true
custom: []
headers:
@ -186,19 +186,9 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sshKey_id:
name: sshKey_id
description: 'The ID of the sshKey.'
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
@ -208,8 +198,155 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
sshKey_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"ab","provider":"digitalocean","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 815vc6eDEgZVPkah4fdba36'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the server provider.'
required: true
example: eveniet
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: eveniet
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":3,"project_id":null,"global":true,"name":"expedita","provider":"aws","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 48kfEV6ahDaP63bgcZ51evd'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/server-providers/{serverProvider_id}'
metadata:
groupName: server-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
serverProvider_id:
name: serverProvider_id
description: 'The ID of the serverProvider.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
serverProvider_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -226,7 +363,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dh8a1gacZ366k5Pev4fbEdV'
- 'Bearer P6g4av8DcaV6fdZ3k1hb5eE'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: services
name: ssh-keys
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/services'
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all services.'
description: 'Get all ssh keys.'
authenticated: true
custom: []
headers:
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"user":null,"name":"Dr. Pansy Kunde DVM","created_at":null,"updated_at":null},{"id":null,"user":null,"name":"Ms. Maximillia DuBuque Sr.","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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,22 +58,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Dbcd346g8EfZ5aheaVvkP16'
- 'Bearer 3Dah456fdP8kVbZ6vEag1ec'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/services/{id}'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a service by ID.'
title: create
description: 'Deploy ssh key to server.'
authenticated: true
custom: []
headers:
@ -101,29 +101,51 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the service.'
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
key_id:
name: key_id
description: 'The ID of the key.'
required: true
example: 169
type: integer
example: debitis
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
name:
name: name
description: 'Key name, required if key_id is not provided.'
required: true
example: illum
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
public_key:
name: public_key
description: 'Public Key, required if key_id is not provided.'
required: true
example: dignissimos
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
key_id: debitis
name: illum
public_key: dignissimos
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null}'
content: '{"id":null,"user":null,"name":"Uriah Harvey","created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -131,372 +153,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer hd8bE5aD6v4Vc16af3kgPeZ'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/start'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: start
description: 'Start service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer agcvkPdfe56aZ14EV6b8D3h'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: stop
description: 'Stop service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer bvVga83Dh1f6ackP46e5ZdE'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: restart
description: 'Restart service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 8PD5cVdfv3a1bh46e6EZagk'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: enable
description: 'Enable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer a485achPEDe63bgVk16vZdf'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: disable
description: 'Disable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6ZePf1dc346k8h5DvaEbaVg'
- 'Bearer 8bkv164ZVPcE5gde3faa6Dh'
controller: null
method: null
route: null
@ -504,14 +161,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/ssh-keys/{sshKey_id}'
metadata:
groupName: services
groupName: ssh-keys
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete service.'
description: 'Delete ssh key from server.'
authenticated: true
custom: []
headers:
@ -539,11 +196,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
sshKey_id:
name: sshKey_id
description: 'The ID of the sshKey.'
required: true
example: 169
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -552,7 +209,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
sshKey_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -569,7 +226,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 48fP63b1hckda6vaZEVeg5D'
- 'Bearer 18P65Da6Vdh3e4cZgfkvabE'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: sites
name: services
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
uri: 'api/projects/{project_id}/servers/{server_id}/services'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: 'Get all sites.'
description: 'Get all services.'
authenticated: true
custom: []
headers:
@ -50,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -58,212 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 3V64fhkdgEvD5Z1cP6aea8b'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: 'Create a new site.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
type:
name: type
description: ''
required: true
example: php-blank
type: string
enumValues:
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
domain:
name: domain
description: ''
required: true
example: harum
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
aliases:
name: aliases
description: ''
required: true
example:
- voluptatem
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
php_version:
name: php_version
description: 'One of the installed PHP Versions'
required: true
example: '7.4'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
web_directory:
name: web_directory
description: 'Required for PHP and Laravel sites'
required: true
example: public
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
source_control:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: amet
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
repository:
name: repository
description: 'Repository, Required for Sites which support source control'
required: true
example: organization/repository
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
branch:
name: branch
description: 'Branch, Required for Sites which support source control'
required: true
example: main
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
composer:
name: composer
description: 'Run composer if site supports composer'
required: true
example: true
type: boolean
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
version:
name: version
description: 'Version, if the site type requires a version like PHPMyAdmin'
required: true
example: 5.2.1
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: et
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: least-connections
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
type: php-blank
domain: harum
aliases:
- voluptatem
php_version: '7.4'
web_directory: public
source_control: amet
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: et
method: least-connections
fileParameters: []
responses:
-
status: 200
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer EVDP3fa1vga8Zk5cd466ebh'
- 'Bearer c4d6561av3ehkVagPfZb8DE'
controller: null
method: null
route: null
@ -271,14 +66,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{id}'
uri: 'api/projects/{project_id}/servers/{server_id}/services/{id}'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: 'Get a site by ID.'
description: 'Get a service by ID.'
authenticated: true
custom: []
headers:
@ -308,9 +103,9 @@ endpoints:
custom: []
id:
name: id
description: 'The ID of the site.'
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -319,7 +114,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
id: 43
id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -328,7 +123,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
content: '{"id":null,"server_id":null,"type":null,"type_data":null,"name":null,"version":null,"unit":null,"status":null,"is_default":null,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -336,80 +131,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer b3h4Zegva1kEcdVfD8P5a66'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete site.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer cDe1b4f6a63EagP5vkdZ8Vh'
- 'Bearer 8ab6dPD5gh1EZfk36vaVe4c'
controller: null
method: null
route: null
@ -417,14 +139,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/start'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
title: start
description: 'Start service.'
authenticated: true
custom: []
headers:
@ -452,11 +174,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -465,208 +187,11 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- accusantium
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: ip-hash
servers:
- accusantium
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer e65dDaaP6V4E3Zcf8hgvkb1'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: aliases
description: 'Update aliases.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters:
aliases:
name: aliases
description: 'Array of aliases'
required: true
example:
- ut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
aliases:
- ut
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer aedPZ4ah68c3Ef1kDVbvg65'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Update site deployment script'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 43
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
queryParameters: []
cleanQueryParameters: []
bodyParameters:
script:
name: script
description: 'Content of the deployment script'
required: true
example: culpa
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
script: culpa
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
@ -679,22 +204,22 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer fhVea1a3cPdk6g5Ev468DZb'
- 'Bearer 1VDa6ckv35hgZ8d6Eb4Pafe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/stop'
metadata:
groupName: sites
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Get site deployment script content'
title: stop
description: 'Stop service.'
authenticated: true
custom: []
headers:
@ -722,11 +247,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 43
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
@ -735,7 +260,7 @@ endpoints:
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 43
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -743,7 +268,7 @@ endpoints:
fileParameters: []
responses:
-
status: 200
status: 204
content: null
headers: []
description: ''
@ -752,7 +277,299 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 1g3bfhd6c8aPV6aZD45eEvk'
- 'Bearer V4d1k6b5hae3fcZDa6g8PvE'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/restart'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: restart
description: 'Restart service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer g84c6eEZP3k5fvV6baD1had'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/enable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: enable
description: 'Enable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer fE4V65h18acdkgbv3Za6PDe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}/disable'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: disable
description: 'Disable service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer gaEcPZ83ka1v65bVfh4d6eD'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/servers/{server_id}/services/{service_id}'
metadata:
groupName: services
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: 'Delete service.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
service_id:
name: service_id
description: 'The ID of the service.'
required: true
example: 169
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
service_id: 169
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 8Va1aEehb5kg3P64ZdvDcf6'
controller: null
method: null
route: null

View File

@ -1,17 +1,17 @@
name: source-controls
name: sites
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls'
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
description: 'Get all sites.'
authenticated: true
custom: []
headers:
@ -29,8 +29,19 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -39,7 +50,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Amya Jones","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Jerry Donnelly","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null},{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -47,7 +58,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer Pvgec6k58a4fZa6D1Vd3hEb'
- 'Bearer d8Ev3Pce54gkZ6h6faVb1Da'
controller: null
method: null
route: null
@ -55,14 +66,14 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/source-controls'
uri: 'api/projects/{project_id}/servers/{server_id}/sites'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
description: 'Create a new site.'
authenticated: true
custom: []
headers:
@ -80,86 +91,171 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The provider'
type:
name: type
description: ''
required: true
example: bitbucket
example: phpmyadmin
type: string
enumValues:
- gitlab
- github
- bitbucket
- php
- php-blank
- phpmyadmin
- laravel
- wordpress
- load-balancer
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the storage provider.'
domain:
name: domain
description: ''
required: true
example: eligendi
example: tenetur
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
aliases:
name: aliases
description: ''
required: true
example: debitis
example:
- aut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
php_version:
name: php_version
description: 'One of the installed PHP Versions'
required: true
example: '7.4'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
web_directory:
name: web_directory
description: 'Required for PHP and Laravel sites'
required: true
example: 'http://fahey.com/aliquid-sapiente-labore-adipisci-eum-laborum'
example: public
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
source_control:
name: source_control
description: 'Source control ID, Required for Sites which support source control'
required: true
example: rerum
example: quasi
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
repository:
name: repository
description: 'Repository, Required for Sites which support source control'
required: true
example: 'wBK}NHxV:x'
example: organization/repository
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
branch:
name: branch
description: 'Branch, Required for Sites which support source control'
required: true
example: main
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
composer:
name: composer
description: 'Run composer if site supports composer'
required: true
example: true
type: boolean
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
version:
name: version
description: 'Version, if the site type requires a version like PHPMyAdmin'
required: true
example: 5.2.1
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
user:
name: user
description: 'user, to isolate the website under a new user'
required: true
example: deleniti
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: round-robin
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: bitbucket
name: eligendi
token: debitis
url: 'http://fahey.com/aliquid-sapiente-labore-adipisci-eum-laborum'
username: rerum
password: 'wBK}NHxV:x'
type: phpmyadmin
domain: tenetur
aliases:
- aut
php_version: '7.4'
web_directory: public
source_control: quasi
repository: organization/repository
branch: main
composer: true
version: 5.2.1
user: deleniti
method: round-robin
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Dr. Janae Tremblay PhD","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -167,7 +263,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer eaD3hgavbcE61f46VdkZP58'
- 'Bearer ge6VPfkE8cah6Dv34bda15Z'
controller: null
method: null
route: null
@ -175,14 +271,14 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{id}'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
description: 'Get a site by ID.'
authenticated: true
custom: []
headers:
@ -200,11 +296,21 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
id:
name: id
description: 'The ID of the site.'
required: true
example: 12
type: integer
enumValues: []
exampleWasSpecified: false
@ -212,7 +318,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
server_id: 29
id: 12
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -221,7 +328,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Marguerite Aufderhar","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":null,"server_id":null,"source_control_id":null,"type":"laravel","type_data":null,"domain":"test.com","aliases":null,"web_directory":"\/","path":"\/home","php_version":"8.2","repository":null,"branch":"main","status":"ready","port":null,"user":"vito","progress":100,"created_at":null,"updated_at":null}'
headers: []
description: ''
custom: []
@ -229,137 +336,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer g653Ph4VaebdE1Z6cakfDv8'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the storage provider.'
required: true
example: blanditiis
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: non
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'https://www.veum.com/eum-voluptas-non-rem-non-rerum-tempora-quam'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: porro
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: '>BW~{`#d,}=U!XxC!t]'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: false
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: blanditiis
token: non
url: 'https://www.veum.com/eum-voluptas-non-rem-non-rerum-tempora-quam'
username: porro
password: '>BW~{`#d,}=U!XxC!t]'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"Johan Crooks","provider":"github","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 1g3ZV5haeEa8dD6kcv6bf4P'
- 'Bearer a14kPe3b6fvd6ZgahEVc58D'
controller: null
method: null
route: null
@ -367,14 +344,14 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}'
metadata:
groupName: source-controls
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
description: 'Delete site.'
authenticated: true
custom: []
headers:
@ -392,11 +369,21 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 1
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 9
type: integer
enumValues: []
exampleWasSpecified: false
@ -404,7 +391,8 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
sourceControl_id: 1
server_id: 29
site_id: 9
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -421,7 +409,350 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer de684Vav1kf3PbaDg6hEZc5'
- 'Bearer cvfD853h4EZae6dab6gVPk1'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/load-balancer'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: load-balancer
description: 'Update load balancer.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 19
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 19
queryParameters: []
cleanQueryParameters: []
bodyParameters:
method:
name: method
description: 'Load balancer method, Required if the site type is Load balancer'
required: true
example: ip-hash
type: string
enumValues:
- round-robin
- least-connections
- ip-hash
exampleWasSpecified: false
nullable: false
custom: []
servers:
name: servers
description: 'Array of servers including server, port, weight, backup. (server is the local IP of the server)'
required: true
example:
- dolores
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
method: ip-hash
servers:
- dolores
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer de5Vka1avb6Zg36fDE8Ph4c'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/aliases'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: aliases
description: 'Update aliases.'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters:
aliases:
name: aliases
description: 'Array of aliases'
required: true
example:
- aut
type: 'string[]'
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
aliases:
- aut
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 6f6kVD153hEgPdZacva4b8e'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Update site deployment script'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
script:
name: script
description: 'Content of the deployment script'
required: true
example: qui
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
script: qui
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 3b6Eh5eaf1d48DZvPgk6cVa'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/servers/{server_id}/sites/{site_id}/deployment-script'
metadata:
groupName: sites
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: deployment-script
description: 'Get site deployment script content'
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
server_id:
name: server_id
description: 'The ID of the server.'
required: true
example: 29
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
site_id:
name: site_id
description: 'The ID of the site.'
required: true
example: 16
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
server_id: 29
site_id: 16
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer v1kEa3hgb664dfD5Z8VePac'
controller: null
method: null
route: null

View File

@ -1,12 +1,12 @@
name: storage-providers
name: source-controls
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers'
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -39,7 +39,7 @@ endpoints:
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"sit","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"},{"id":6,"project_id":null,"global":true,"name":"repudiandae","provider":"local","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43: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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"Emil Leannon","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":6,"project_id":null,"global":true,"name":"Eleazar Pacocha Sr.","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
@ -47,7 +47,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer EbkDP1Z3aVav8g6ef6dc5h4'
- 'Bearer a34dVDE5ak8ceZvfh1Pb66g'
controller: null
method: null
route: null
@ -55,9 +55,9 @@ endpoints:
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/storage-providers'
uri: 'api/projects/{project_id}/source-controls'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -87,11 +87,14 @@ endpoints:
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
description: 'The provider'
required: true
example: est
example: github
type: string
enumValues: []
enumValues:
- gitlab
- github
- bitbucket
exampleWasSpecified: false
nullable: false
custom: []
@ -99,7 +102,7 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: id
example: aliquam
type: string
enumValues: []
exampleWasSpecified: false
@ -109,43 +112,54 @@ endpoints:
name: token
description: 'The token if provider requires api token'
required: true
example: repellendus
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: ducimus
example: 'https://brown.org/placeat-optio-illum-eius-ipsa.html'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: possimus
example: a
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: "_/_,9'/6z;9"
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: est
name: id
token: repellendus
key: ducimus
secret: possimus
provider: github
name: aliquam
token: voluptatem
url: 'https://brown.org/placeat-optio-illum-eius-ipsa.html'
username: a
password: "_/_,9'/6z;9"
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"sequi","provider":"dropbox","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Ahmad Kulas","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -153,7 +167,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer 45kVPD6ec6hvga83bfa1dEZ'
- 'Bearer 65dacDVh4kevfZ8P1bEga36'
controller: null
method: null
route: null
@ -161,9 +175,9 @@ endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -186,11 +200,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -198,7 +212,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -207,7 +221,7 @@ endpoints:
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"alias","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Mr. Marquis Kunde IV","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -215,7 +229,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer ahb6gDd8fv3P1ak6cEe4V5Z'
- 'Bearer a8hf6adecDkVbEZ6P1g54v3'
controller: null
method: null
route: null
@ -223,9 +237,9 @@ endpoints:
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -248,11 +262,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -260,7 +274,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
@ -268,7 +282,47 @@ endpoints:
name: name
description: 'The name of the storage provider.'
required: true
example: ullam
example: laudantium
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: nulla
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
url:
name: url
description: 'The URL if the provider is Gitlab and it is self-hosted'
required: true
example: 'http://wiza.com/'
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
username:
name: username
description: 'The username if the provider is Bitbucket'
required: true
example: numquam
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
password:
name: password
description: 'The password if the provider is Bitbucket'
required: true
example: 'MlD,$m:8^A'
type: string
enumValues: []
exampleWasSpecified: false
@ -278,7 +332,7 @@ endpoints:
name: global
description: 'Accessible in all projects'
required: true
example: true
example: false
type: string
enumValues:
- true
@ -287,13 +341,17 @@ endpoints:
nullable: false
custom: []
cleanBodyParameters:
name: ullam
global: true
name: laudantium
token: nulla
url: 'http://wiza.com/'
username: numquam
password: 'MlD,$m:8^A'
global: false
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"at","provider":"ftp","created_at":"2025-03-29T20:43:56.000000Z","updated_at":"2025-03-29T20:43:56.000000Z"}'
content: '{"id":5,"project_id":null,"global":true,"name":"Mrs. Arvilla Mitchell","provider":"github","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
@ -301,7 +359,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer a8Vgfvh5abkd616eDZ43cPE'
- 'Bearer Z36EdDbavkeVPch68a1g45f'
controller: null
method: null
route: null
@ -309,9 +367,9 @@ endpoints:
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
uri: 'api/projects/{project_id}/source-controls/{sourceControl_id}'
metadata:
groupName: storage-providers
groupName: source-controls
groupDescription: ''
subgroup: ''
subgroupDescription: ''
@ -334,11 +392,11 @@ endpoints:
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
sourceControl_id:
name: sourceControl_id
description: 'The ID of the sourceControl.'
required: true
example: 3
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
@ -346,7 +404,7 @@ endpoints:
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
sourceControl_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
@ -363,7 +421,7 @@ endpoints:
auth:
- headers
- Authorization
- 'Bearer kDheaPEvb61Va564dZc8f3g'
- 'Bearer gaadhb6Ev6Dk8fc4P1eV53Z'
controller: null
method: null
route: null

370
.scribe/endpoints/13.yaml Normal file
View File

@ -0,0 +1,370 @@
name: storage-providers
description: ''
endpoints:
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: list
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"data":[{"id":5,"project_id":null,"global":true,"name":"autem","provider":"s3","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"},{"id":6,"project_id":null,"global":true,"name":"nihil","provider":"ftp","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.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":"&laquo; Previous","active":false},{"url":"\/?page=1","label":"1","active":true},{"url":null,"label":"Next &raquo;","active":false}],"path":"\/","per_page":25,"to":2,"total":2}}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer c8gDkZ1563Va4dvb6EaefPh'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- POST
uri: 'api/projects/{project_id}/storage-providers'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: create
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
queryParameters: []
cleanQueryParameters: []
bodyParameters:
provider:
name: provider
description: 'The provider (aws, linode, hetzner, digitalocean, vultr, ...)'
required: true
example: est
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
name:
name: name
description: 'The name of the storage provider.'
required: true
example: voluptatem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
token:
name: token
description: 'The token if provider requires api token'
required: true
example: delectus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
key:
name: key
description: 'The key if provider requires key'
required: true
example: natus
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
secret:
name: secret
description: 'The secret if provider requires key'
required: true
example: saepe
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
provider: est
name: voluptatem
token: delectus
key: natus
secret: saepe
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"omnis","provider":"local","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer g8aVh3evPZ5dkDfac14b66E'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- GET
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: show
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"molestiae","provider":"dropbox","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 184aP6ce6b5VfdZv3hDakEg'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- PUT
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: update
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters:
name:
name: name
description: 'The name of the storage provider.'
required: true
example: exercitationem
type: string
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
global:
name: global
description: 'Accessible in all projects'
required: true
example: true
type: string
enumValues:
- true
- false
exampleWasSpecified: false
nullable: false
custom: []
cleanBodyParameters:
name: exercitationem
global: true
fileParameters: []
responses:
-
status: 200
content: '{"id":5,"project_id":null,"global":true,"name":"dolorum","provider":"s3","created_at":"2025-03-31T15:27:17.000000Z","updated_at":"2025-03-31T15:27:17.000000Z"}'
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer dav4Dh6Pgb35ckEa81f6VZe'
controller: null
method: null
route: null
custom: []
-
httpMethods:
- DELETE
uri: 'api/projects/{project_id}/storage-providers/{storageProvider_id}'
metadata:
groupName: storage-providers
groupDescription: ''
subgroup: ''
subgroupDescription: ''
title: delete
description: ''
authenticated: true
custom: []
headers:
Authorization: 'Bearer YOUR-API-KEY'
Content-Type: application/json
Accept: application/json
urlParameters:
project_id:
name: project_id
description: 'The ID of the project.'
required: true
example: 1
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
storageProvider_id:
name: storageProvider_id
description: 'The ID of the storageProvider.'
required: true
example: 3
type: integer
enumValues: []
exampleWasSpecified: false
nullable: false
custom: []
cleanUrlParameters:
project_id: 1
storageProvider_id: 3
queryParameters: []
cleanQueryParameters: []
bodyParameters: []
cleanBodyParameters: []
fileParameters: []
responses:
-
status: 204
content: null
headers: []
description: ''
custom: []
responseFields: []
auth:
- headers
- Authorization
- 'Bearer 84vcE35a6dDZgak1ehVP6fb'
controller: null
method: null
route: null
custom: []

View File

@ -0,0 +1,75 @@
<?php
namespace App\Actions\Redirect;
use App\Enums\RedirectStatus;
use App\Models\Redirect;
use App\Models\Service;
use App\Models\Site;
use App\SSH\Services\Webserver\Webserver;
use Illuminate\Validation\Rule;
class CreateRedirect
{
/**
* @param array<string, mixed> $input
*/
public function create(Site $site, array $input): Redirect
{
$redirect = new Redirect;
$redirect->site_id = $site->id;
$redirect->from = $input['from'];
$redirect->to = $input['to'];
$redirect->mode = $input['mode'];
$redirect->status = RedirectStatus::CREATING;
$redirect->save();
dispatch(function () use ($site, $redirect): void {
/** @var Service $service */
$service = $site->server->webserver();
/** @var Webserver $webserver */
$webserver = $service->handler();
$webserver->updateVHost($site);
$redirect->status = RedirectStatus::READY;
$redirect->save();
})
->catch(function () use ($redirect): void {
$redirect->status = RedirectStatus::FAILED;
$redirect->save();
})
->onConnection('ssh');
return $redirect->refresh();
}
/**
* @return array<string, array<string>>
*/
public static function rules(Site $site): array
{
return [
'from' => [
'required',
'string',
'max:255',
'not_regex:/^http(s)?:\/\//',
Rule::unique('redirects', 'from')->where('site_id', $site->id),
],
'to' => [
'required',
'url:http,https',
],
'mode' => [
'required',
'integer',
Rule::in([
301,
302,
307,
308,
]),
],
];
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace App\Actions\Redirect;
use App\Enums\RedirectStatus;
use App\Models\Redirect;
use App\Models\Service;
use App\Models\Site;
use App\SSH\Services\Webserver\Webserver;
class DeleteRedirect
{
public function delete(Site $site, Redirect $redirect): void
{
$redirect->status = RedirectStatus::DELETING;
$redirect->save();
dispatch(function () use ($site, $redirect): void {
/** @var Service $service */
$service = $site->server->webserver();
/** @var Webserver $webserver */
$webserver = $service->handler();
$webserver->updateVHost($site);
$redirect->delete();
})->catch(function () use ($redirect): void {
$redirect->status = RedirectStatus::FAILED;
$redirect->save();
})->onConnection('ssh');
}
}

View File

@ -0,0 +1,14 @@
<?php
namespace App\Enums;
final class RedirectStatus
{
const CREATING = 'creating';
const READY = 'ready';
const DELETING = 'deleting';
const FAILED = 'failed';
}

View File

@ -0,0 +1,87 @@
<?php
namespace App\Http\Controllers\API;
use App\Actions\Redirect\CreateRedirect;
use App\Actions\Redirect\DeleteRedirect;
use App\Http\Controllers\Controller;
use App\Http\Resources\RedirectResource;
use App\Models\Project;
use App\Models\Redirect;
use App\Models\Server;
use App\Models\Site;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\ResourceCollection;
use Illuminate\Http\Response as HttpResponse;
use Knuckles\Scribe\Attributes\BodyParam;
use Knuckles\Scribe\Attributes\Endpoint;
use Knuckles\Scribe\Attributes\Group;
use Knuckles\Scribe\Attributes\Response;
use Knuckles\Scribe\Attributes\ResponseFromApiResource;
use Spatie\RouteAttributes\Attributes\Delete;
use Spatie\RouteAttributes\Attributes\Get;
use Spatie\RouteAttributes\Attributes\Middleware;
use Spatie\RouteAttributes\Attributes\Post;
use Spatie\RouteAttributes\Attributes\Prefix;
#[Prefix('api/projects/{project}/servers/{server}/sites/{site}/redirects')]
#[Middleware(['auth:sanctum', 'can-see-project'])]
#[Group(name: 'redirects')]
class RedirectController extends Controller
{
#[Get('/', name: 'api.projects.servers.sites.redirects.index', middleware: 'ability:read')]
#[Endpoint(title: 'index', description: 'Get all redirects.')]
#[ResponseFromApiResource(RedirectResource::class, Redirect::class, collection: true, paginate: 25)]
public function index(Project $project, Server $server, Site $site): ResourceCollection
{
$this->authorize('view', [Redirect::class, $site, $server]);
$this->validateRoute($project, $server, $site);
return RedirectResource::collection($site->redirects()->simplePaginate(25));
}
#[Post('/', name: 'api.projects.servers.sites.redirects.create', middleware: 'ability:write')]
#[Endpoint(title: 'create', description: 'Create a new redirect.')]
#[BodyParam(name: 'from', required: true)]
#[BodyParam(name: 'to', required: true)]
#[BodyParam(name: 'mode', required: true, enum: [301, 302, 307, 308])]
#[Response(status: 200)]
public function create(Request $request, Project $project, Server $server, Site $site): RedirectResource
{
$this->authorize('create', [Redirect::class, $site, $server]);
$this->validateRoute($project, $server, $site);
$this->validate($request, CreateRedirect::rules($site));
$redirect = app(CreateRedirect::class)->create($site, $request->all());
return new RedirectResource($redirect);
}
#[Delete('/{redirect}', name: 'api.projects.servers.sites.redirects.delete', middleware: 'ability:write')]
#[Endpoint(title: 'delete', description: 'Delete a redirect.')]
#[Response(status: 204)]
public function delete(Project $project, Server $server, Site $site, Redirect $redirect): HttpResponse
{
$this->authorize('delete', [Redirect::class, $site, $server]);
$this->validateRoute($project, $server, $site);
app(DeleteRedirect::class)->delete($site, $redirect);
return response()->noContent();
}
private function validateRoute(Project $project, Server $server, Site $site): void
{
if ($project->id !== $server->project_id) {
abort(404, 'Server not found in project');
}
if ($site->server_id !== $server->id) {
abort(404, 'Site not found in server');
}
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace App\Http\Resources;
use App\Models\Redirect;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
/** @mixin Redirect */
class RedirectResource extends JsonResource
{
/**
* @return array<string, mixed>
*/
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'site_id' => $this->site_id,
'mode' => $this->mode,
'from' => $this->from,
'to' => $this->to,
'status' => $this->status,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}

49
app/Models/Redirect.php Normal file
View File

@ -0,0 +1,49 @@
<?php
namespace App\Models;
use App\Enums\RedirectStatus;
use Database\Factories\RedirectFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
/**
* @property int $id
* @property int $site_id
* @property string $from
* @property string $to
* @property string $mode
* @property string $status
* @property Site $site
*/
class Redirect extends AbstractModel
{
/** @use HasFactory<RedirectFactory> */
use HasFactory;
protected $fillable = [
'site_id',
'from',
'to',
'mode',
'status',
];
/**
* @var array<string, string>
*/
public static array $statusColors = [
RedirectStatus::CREATING => 'warning',
RedirectStatus::READY => 'success',
RedirectStatus::DELETING => 'warning',
RedirectStatus::FAILED => 'danger',
];
/**
* @return BelongsTo<Site, covariant $this>
*/
public function site(): BelongsTo
{
return $this->belongsTo(Site::class);
}
}

View File

@ -2,6 +2,7 @@
namespace App\Models;
use App\Enums\RedirectStatus;
use App\Enums\SiteStatus;
use App\Enums\SslStatus;
use App\Exceptions\FailedToDestroyGitHook;
@ -52,6 +53,8 @@
* @property ?SourceControl $sourceControl
* @property Collection<int, LoadBalancerServer> $loadBalancerServers
* @property Project $project
* @property Collection<int, Redirect> $redirects
* @property Collection<int, Redirect> $activeRedirects
*/
class Site extends AbstractModel
{
@ -419,4 +422,20 @@ public function getSshUsers(): array
return $users;
}
/**
* @return HasMany<Redirect, covariant $this>
*/
public function redirects(): HasMany
{
return $this->hasMany(Redirect::class);
}
/**
* @return HasMany<Redirect, covariant $this>
*/
public function activeRedirects(): HasMany
{
return $this->redirects()->whereIn('status', [RedirectStatus::CREATING, RedirectStatus::READY]);
}
}

View File

@ -0,0 +1,35 @@
<?php
namespace App\Policies;
use App\Models\Server;
use App\Models\Site;
use App\Models\User;
class RedirectPolicy
{
public function view(User $user, Site $site, Server $server): bool
{
if ($user->isAdmin()) {
return true;
}
return $site->server->project->users->contains($user);
}
public function create(User $user, Site $site, Server $server): bool
{
return ($user->isAdmin() || $site->server->project->users->contains($user))
&& $site->server_id === $server->id
&& $site->server->isReady()
&& $site->server->webserver();
}
public function delete(User $user, Site $site, Server $server): bool
{
return ($user->isAdmin() || $site->server->project->users->contains($user))
&& $site->server_id === $server->id
&& $site->server->isReady()
&& $site->server->webserver();
}
}

View File

@ -80,18 +80,14 @@ public function createVHost(Site $site): void
$this->service->server->ssh()->write(
'/etc/nginx/sites-available/'.$site->domain,
view('ssh.services.webserver.nginx.vhost', [
'site' => $site,
]),
$this->generateVhost($site),
'root'
);
$this->service->server->ssh()->exec(
view('ssh.services.webserver.nginx.create-vhost', [
'domain' => $site->domain,
'vhost' => view('ssh.services.webserver.nginx.vhost', [
'site' => $site,
]),
'vhost' => $this->generateVhost($site),
]),
'create-vhost',
$site->id
@ -105,9 +101,7 @@ public function updateVHost(Site $site, ?string $vhost = null): void
{
$this->service->server->ssh()->write(
'/etc/nginx/sites-available/'.$site->domain,
$vhost ?? view('ssh.services.webserver.nginx.vhost', [
'site' => $site,
]),
$vhost ?? $this->generateVhost($site),
'root'
);
@ -209,4 +203,13 @@ public function removeSSL(Ssl $ssl): void
$this->updateVHost($ssl->site);
}
private function generateVhost(Site $site): string
{
$vhost = view('ssh.services.webserver.nginx.vhost', [
'site' => $site,
]);
return format_nginx_config($vhost);
}
}

View File

@ -218,3 +218,36 @@ function home_path(string $user): string
return '/home/'.$user;
}
function format_nginx_config(string $config): string
{
$lines = explode("\n", trim($config));
$indent = 0;
$formattedLines = [];
foreach ($lines as $line) {
$trimmed = trim($line);
// Preserve empty lines exactly as they are
if ($trimmed === '') {
$formattedLines[] = '';
continue;
}
// If line is a closing brace, decrease indentation first
if ($trimmed === '}') {
$indent--;
}
// Apply indentation
$formattedLines[] = str_repeat(' ', max(0, $indent)).$trimmed;
// If line contains an opening brace, increase indentation
if (str_ends_with($trimmed, '{')) {
$indent++;
}
}
return implode("\n", $formattedLines)."\n";
}

View File

@ -2,6 +2,7 @@
namespace App\Web\Pages\Servers\Sites;
use App\Models\Redirect;
use App\Models\ServerLog;
use App\Models\Site;
use App\Models\Ssl;
@ -75,6 +76,16 @@ public function getSecondSubNavigation(): array
]));
}
if ($user->can('view', [Redirect::class, $this->site, $this->server])) {
$items[] = NavigationItem::make(Pages\Redirects\Index::getNavigationLabel())
->icon('heroicon-o-arrows-right-left')
->isActiveWhen(fn () => request()->routeIs(Pages\Redirects\Index::getRouteName()))
->url(Pages\Redirects\Index::getUrl(parameters: [
'server' => $this->server,
'site' => $this->site,
]));
}
return [
NavigationGroup::make()
->items($items),

View File

@ -0,0 +1,43 @@
<?php
namespace App\Web\Pages\Servers\Sites\Pages\Redirects\Actions;
use App\Actions\Redirect\CreateRedirect;
use App\Models\Site;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Livewire\Component;
class Create
{
/**
* @return array<int, mixed>
*/
public static function form(Site $site): array
{
return [
TextInput::make('from')
->rules(CreateRedirect::rules($site)['from']),
TextInput::make('to')
->rules(CreateRedirect::rules($site)['to']),
Select::make('mode')
->rules(CreateRedirect::rules($site)['mode'])
->options([
'301' => '301 - Moved Permanently',
'302' => '302 - Found',
'307' => '307 - Temporary Redirect',
'308' => '308 - Permanent Redirect',
]),
];
}
/**
* @param array<string, mixed> $data
*/
public static function action(Component $component, array $data, Site $site): void
{
app(CreateRedirect::class)->create($site, $data);
$component->dispatch('$refresh');
}
}

View File

@ -0,0 +1,55 @@
<?php
namespace App\Web\Pages\Servers\Sites\Pages\Redirects;
use App\Models\Redirect;
use App\Web\Pages\Servers\Sites\Page;
use App\Web\Pages\Servers\Sites\Pages\Redirects\Actions\Create;
use App\Web\Pages\Servers\Sites\Pages\Redirects\Widgets\RedirectsList;
use Filament\Actions\Action;
use Filament\Actions\CreateAction;
use Filament\Support\Enums\MaxWidth;
class Index extends Page
{
protected static ?string $slug = 'servers/{server}/sites/{site}/redirects';
protected static ?string $title = 'Redirects';
public function mount(): void
{
$this->authorize('view', [Redirect::class, $this->site, $this->server]);
}
public function getWidgets(): array
{
return [
[
RedirectsList::class, [
'site' => $this->site,
],
],
];
}
protected function getHeaderActions(): array
{
return [
Action::make('read-the-docs')
->label('Read the Docs')
->icon('heroicon-o-document-text')
->color('gray')
->url('https://vitodeploy.com/docs/sites/redirects')
->openUrlInNewTab(),
CreateAction::make('create')
->icon('heroicon-o-plus')
->createAnother(false)
->modalWidth(MaxWidth::ExtraLarge)
->label('New Redirect')
->form(Create::form($this->site))
->using(fn (array $data) => run_action($this, function () use ($data): void {
Create::action($this, $data, $this->site);
})),
];
}
}

View File

@ -0,0 +1,85 @@
<?php
namespace App\Web\Pages\Servers\Sites\Pages\Redirects\Widgets;
use App\Actions\Redirect\DeleteRedirect;
use App\Models\Redirect;
use App\Models\Site;
use App\Models\User;
use Filament\Tables\Actions\DeleteAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Filament\Widgets\TableWidget as Widget;
use Illuminate\Database\Eloquent\Builder;
class RedirectsList extends Widget
{
public Site $site;
/**
* @var array<string>
*/
protected $listeners = ['$refresh'];
/**
* @return Builder<Redirect>
*/
protected function getTableQuery(): Builder
{
return Redirect::query()->where('site_id', $this->site->id);
}
protected function getTableColumns(): array
{
auth()->user();
return [
TextColumn::make('from')
->limit(40)
->tooltip(fn (Redirect $redirect) => $redirect->from)
->searchable()
->copyable(),
TextColumn::make('to')
->limit(40)
->tooltip(fn (Redirect $redirect) => $redirect->to)
->searchable()
->copyable(),
TextColumn::make('mode')
->searchable()
->sortable(),
TextColumn::make('status')
->label('Status')
->badge()
->color(fn (Redirect $redirect) => Redirect::$statusColors[$redirect->status])
->searchable()
->sortable(),
TextColumn::make('created_at')
->formatStateUsing(fn (Redirect $record) => $record->created_at)
->sortable(),
];
}
public function table(Table $table): Table
{
/** @var User $user */
$user = auth()->user();
return $table
->heading(null)
->query($this->getTableQuery())
->columns($this->getTableColumns())
->actions([
DeleteAction::make('delete')
->hiddenLabel()
->tooltip('Delete')
->icon('heroicon-o-trash')
->authorize(fn (Redirect $record) => $user->can('delete', [$this->site, $this->site->server]))
->using(function (Redirect $record): void {
run_action($this, function () use ($record): void {
app(DeleteRedirect::class)->delete($this->site, $record);
$this->dispatch('$refresh');
});
}),
]);
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace Database\Factories;
use App\Enums\RedirectStatus;
use App\Models\Redirect;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Redirect>
*/
class RedirectFactory extends Factory
{
protected $model = Redirect::class;
/**
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'from' => $this->faker->word,
'to' => $this->faker->url,
'mode' => $this->faker->randomElement([301, 302, 307, 308]),
'status' => RedirectStatus::READY,
];
}
}

View File

@ -10,7 +10,7 @@
],
"info": {
"name": "API Documentation",
"_postman_id": "b4316c5d-00b9-4733-9e7b-cbd38f7bd90a",
"_postman_id": "89857b10-bb5c-40a2-b503-98e891d9ebef",
"description": "VitoDeploy's API documentation.",
"schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
},
@ -101,7 +101,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"command\":\"qui\",\"user\":\"vito\",\"frequency\":\"* * * * *\"}"
"raw": "{\"command\":\"sit\",\"user\":\"root\",\"frequency\":\"* * * * *\"}"
},
"description": "Create a new cron job."
},
@ -138,7 +138,7 @@
{
"id": "cronJob_id",
"key": "cronJob_id",
"value": "17",
"value": "13",
"description": "The ID of the cronJob."
}
]
@ -190,7 +190,7 @@
{
"id": "cronJob_id",
"key": "cronJob_id",
"value": "11",
"value": "16",
"description": "The ID of the cronJob."
}
]
@ -265,7 +265,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"server_id\":null,\"username\":\"lehner.eloy\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"username\":\"rlowe\",\"databases\":[],\"host\":\"%\",\"status\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":null,\"server_id\":null,\"username\":\"imurray\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"username\":\"raleigh.heidenreich\",\"databases\":[],\"host\":\"%\",\"status\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -306,7 +306,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"username\":\"voluptas\",\"password\":\":D+e=\\\/;H,\",\"host\":\"%\"}"
"raw": "{\"username\":\"ut\",\"password\":\"L&1)4X-w>&T=:'Y2#x\",\"host\":\"%\"}"
},
"description": "Create a new database user."
},
@ -314,7 +314,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"server_id\":null,\"username\":\"fahey.joseph\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"server_id\":null,\"username\":\"kbernhard\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -343,7 +343,7 @@
{
"id": "databaseUser_id",
"key": "databaseUser_id",
"value": "19",
"value": "8",
"description": "The ID of the databaseUser."
}
]
@ -366,7 +366,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"server_id\":null,\"username\":\"szboncak\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"server_id\":null,\"username\":\"lavada.casper\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -395,7 +395,7 @@
{
"id": "databaseUser_id",
"key": "databaseUser_id",
"value": "11",
"value": "3",
"description": "The ID of the databaseUser."
}
]
@ -413,7 +413,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"databases\":\"accusantium\"}"
"raw": "{\"databases\":\"laboriosam\"}"
},
"description": "Link to databases"
},
@ -421,7 +421,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"server_id\":null,\"username\":\"smith.liliana\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"server_id\":null,\"username\":\"ojerde\",\"databases\":[],\"host\":\"%\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -450,7 +450,7 @@
{
"id": "databaseUser_id",
"key": "databaseUser_id",
"value": "18",
"value": "8",
"description": "The ID of the databaseUser."
}
]
@ -525,7 +525,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"server_id\":null,\"name\":\"joyce53\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"name\":\"eric55\",\"status\":\"ready\",\"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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":null,\"server_id\":null,\"name\":\"fkrajcik\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"server_id\":null,\"name\":\"critchie\",\"status\":\"ready\",\"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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -566,7 +566,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"debitis\",\"charset\":\"maxime\",\"collation\":\"sed\"}"
"raw": "{\"name\":\"esse\",\"charset\":\"ut\",\"collation\":\"labore\"}"
},
"description": "Create a new database."
},
@ -574,7 +574,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"server_id\":null,\"name\":\"brekke.isabell\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"server_id\":null,\"name\":\"cory33\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -603,7 +603,7 @@
{
"id": "id",
"key": "id",
"value": "11",
"value": "9",
"description": "The ID of the database."
}
]
@ -626,7 +626,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"server_id\":null,\"name\":\"vandervort.emmalee\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"server_id\":null,\"name\":\"walter.jacey\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -655,7 +655,7 @@
{
"id": "database_id",
"key": "database_id",
"value": "5",
"value": "16",
"description": "The ID of the database."
}
]
@ -730,7 +730,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"name\":\"ea\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":41910,\"source\":\"202.183.211.242\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"name\":\"iusto\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":60689,\"source\":\"227.149.61.57\",\"mask\":24,\"note\":\"test\",\"status\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":null,\"name\":\"optio\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":52674,\"source\":\"142.10.115.135\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"name\":\"dolores\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":34607,\"source\":\"20.175.64.76\",\"mask\":24,\"note\":\"test\",\"status\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -771,7 +771,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"autem\",\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":\"quas\",\"source\":\"blanditiis\",\"mask\":\"0\"}"
"raw": "{\"name\":\"voluptas\",\"type\":\"deny\",\"protocol\":\"udp\",\"port\":\"qui\",\"source\":\"amet\",\"mask\":\"0\"}"
},
"description": "Create a new firewall rule."
},
@ -779,7 +779,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"name\":\"in\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":13253,\"source\":\"245.228.81.208\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"name\":\"molestiae\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":26783,\"source\":\"190.202.255.27\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -826,7 +826,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"earum\",\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":\"ab\",\"source\":\"possimus\",\"mask\":\"0\"}"
"raw": "{\"name\":\"et\",\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":\"rerum\",\"source\":\"sed\",\"mask\":\"0\"}"
},
"description": "Update an existing firewall rule."
},
@ -834,7 +834,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"name\":\"repudiandae\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":44250,\"source\":\"243.200.88.169\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"name\":\"labore\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":29044,\"source\":\"113.132.217.224\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -886,7 +886,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"name\":\"quam\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":62505,\"source\":\"73.254.77.244\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"name\":\"ipsa\",\"server_id\":null,\"type\":\"allow\",\"protocol\":\"tcp\",\"port\":50679,\"source\":\"42.114.67.31\",\"mask\":24,\"note\":\"test\",\"status\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -992,7 +992,7 @@
},
{
"key": "x-ratelimit-remaining",
"value": "59"
"value": "58"
},
{
"key": "access-control-allow-origin",
@ -1038,7 +1038,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":3,\"name\":\"Amara Jaskolski\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"},{\"id\":4,\"name\":\"Christy Kohler\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43: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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":3,\"name\":\"Kattie Haley\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"},{\"id\":4,\"name\":\"Kailyn Kiehn\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -1065,7 +1065,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"temporibus\"}"
"raw": "{\"name\":\"excepturi\"}"
},
"description": "Create a new project."
},
@ -1073,7 +1073,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"name\":\"Prof. Enrico Wehner Sr.\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"name\":\"Dayne White\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1113,7 +1113,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"name\":\"Zoie Feest\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"name\":\"Cheyenne Ankunding III\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1148,7 +1148,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"sit\"}"
"raw": "{\"name\":\"mollitia\"}"
},
"description": "Update project."
},
@ -1156,7 +1156,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"name\":\"Mr. Jayme Kuhlman DVM\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"name\":\"Susanna Stark\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1203,6 +1203,177 @@
}
]
},
{
"name": "redirects",
"description": "",
"item": [
{
"name": "index",
"request": {
"url": {
"host": "{{baseUrl}}",
"path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects",
"query": [],
"raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects",
"variable": [
{
"id": "project_id",
"key": "project_id",
"value": "1",
"description": "The ID of the project."
},
{
"id": "server_id",
"key": "server_id",
"value": "29",
"description": "The ID of the server."
},
{
"id": "site_id",
"key": "site_id",
"value": "11",
"description": "The ID of the site."
}
]
},
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application\/json"
},
{
"key": "Accept",
"value": "application\/json"
}
],
"body": null,
"description": "Get all redirects."
},
"response": [
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"site_id\":null,\"mode\":301,\"from\":\"error\",\"to\":\"https:\\\/\\\/www.pfannerstill.com\\\/facere-est-totam-laudantium-in-illo-sequi\",\"status\":\"ready\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"site_id\":null,\"mode\":301,\"from\":\"repellat\",\"to\":\"http:\\\/\\\/gislason.biz\\\/sed-corrupti-et-id-earum-qui-consequatur-quis-voluptas.html\",\"status\":\"ready\",\"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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
},
{
"name": "create",
"request": {
"url": {
"host": "{{baseUrl}}",
"path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects",
"query": [],
"raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects",
"variable": [
{
"id": "project_id",
"key": "project_id",
"value": "1",
"description": "The ID of the project."
},
{
"id": "server_id",
"key": "server_id",
"value": "29",
"description": "The ID of the server."
},
{
"id": "site_id",
"key": "site_id",
"value": "11",
"description": "The ID of the site."
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application\/json"
},
{
"key": "Accept",
"value": "application\/json"
}
],
"body": {
"mode": "raw",
"raw": "{\"from\":\"vel\",\"to\":\"ea\",\"mode\":307}"
},
"description": "Create a new redirect."
},
"response": [
{
"header": [],
"code": 200,
"body": null,
"name": ""
}
]
},
{
"name": "delete",
"request": {
"url": {
"host": "{{baseUrl}}",
"path": "api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects\/:redirect_id",
"query": [],
"raw": "{{baseUrl}}\/api\/projects\/:project_id\/servers\/:server_id\/sites\/:site_id\/redirects\/:redirect_id",
"variable": [
{
"id": "project_id",
"key": "project_id",
"value": "1",
"description": "The ID of the project."
},
{
"id": "server_id",
"key": "server_id",
"value": "29",
"description": "The ID of the server."
},
{
"id": "site_id",
"key": "site_id",
"value": "11",
"description": "The ID of the site."
},
{
"id": "redirect_id",
"key": "redirect_id",
"value": "9",
"description": "The ID of the redirect."
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"value": "application\/json"
},
{
"key": "Accept",
"value": "application\/json"
}
],
"body": null,
"description": "Delete a redirect."
},
"response": [
{
"header": [],
"code": 204,
"body": null,
"name": ""
}
]
}
]
},
{
"name": "server-providers",
"description": "",
@ -1242,7 +1413,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"quaerat\",\"provider\":\"aws\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"},{\"id\":4,\"project_id\":null,\"global\":true,\"name\":\"quas\",\"provider\":\"vultr\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43: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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"id\",\"provider\":\"custom\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"},{\"id\":4,\"project_id\":null,\"global\":true,\"name\":\"culpa\",\"provider\":\"linode\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -1277,7 +1448,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"provider\":\"exercitationem\",\"name\":\"similique\",\"token\":\"nisi\",\"key\":\"tempora\",\"secret\":\"earum\"}"
"raw": "{\"provider\":\"mollitia\",\"name\":\"adipisci\",\"token\":\"animi\",\"key\":\"provident\",\"secret\":\"deserunt\"}"
},
"description": ""
},
@ -1285,7 +1456,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"iure\",\"provider\":\"hetzner\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"et\",\"provider\":\"vultr\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1331,7 +1502,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"et\",\"provider\":\"vultr\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"ab\",\"provider\":\"digitalocean\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1372,7 +1543,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"porro\",\"global\":false}"
"raw": "{\"name\":\"eveniet\",\"global\":false}"
},
"description": ""
},
@ -1380,7 +1551,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"aliquam\",\"provider\":\"hetzner\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":3,\"project_id\":null,\"global\":true,\"name\":\"expedita\",\"provider\":\"aws\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -1472,7 +1643,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Prof. Wyatt Powlowski IV\",\"ssh_user\":\"vito\",\"ip\":\"33.53.217.82\",\"local_ip\":\"227.155.11.76\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Guiseppe D'Amore\",\"ssh_user\":\"vito\",\"ip\":\"41.138.98.159\",\"local_ip\":\"78.178.81.109\",\"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\":null,\"last_update_check\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Consuelo Connelly\",\"ssh_user\":\"vito\",\"ip\":\"80.154.83.232\",\"local_ip\":\"45.31.117.65\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null},{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Rodolfo Fadel\",\"ssh_user\":\"vito\",\"ip\":\"103.227.79.93\",\"local_ip\":\"33.49.217.56\",\"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\":null,\"last_update_check\":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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -1507,7 +1678,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"provider\":\"vel\",\"server_provider\":\"hetzner\",\"region\":\"voluptatibus\",\"plan\":\"ducimus\",\"ip\":\"dolores\",\"port\":\"ratione\",\"name\":\"in\",\"os\":\"cumque\",\"webserver\":\"nginx\",\"database\":\"mysql80\",\"php\":\"7.4\"}"
"raw": "{\"provider\":\"incidunt\",\"server_provider\":\"hetzner\",\"region\":\"ut\",\"plan\":\"ullam\",\"ip\":\"architecto\",\"port\":\"praesentium\",\"name\":\"facere\",\"os\":\"illo\",\"webserver\":\"none\",\"database\":\"none\",\"php\":\"8.1\"}"
},
"description": "Create a new server."
},
@ -1515,7 +1686,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Anissa McDermott\",\"ssh_user\":\"vito\",\"ip\":\"212.15.34.173\",\"local_ip\":\"142.201.95.242\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Herbert VonRueden\",\"ssh_user\":\"vito\",\"ip\":\"91.154.105.143\",\"local_ip\":\"62.75.177.7\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -1561,7 +1732,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Prof. Newton Wintheiser Jr.\",\"ssh_user\":\"vito\",\"ip\":\"243.154.251.36\",\"local_ip\":\"198.224.194.65\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"project_id\":null,\"user_id\":null,\"provider_id\":null,\"name\":\"Connie Simonis\",\"ssh_user\":\"vito\",\"ip\":\"202.119.26.253\",\"local_ip\":\"112.75.79.203\",\"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\":null,\"last_update_check\":null,\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -2208,7 +2379,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"type\":\"php-blank\",\"domain\":\"harum\",\"aliases\":[\"voluptatem\"],\"php_version\":\"7.4\",\"web_directory\":\"public\",\"source_control\":\"amet\",\"repository\":\"organization\\\/repository\",\"branch\":\"main\",\"composer\":true,\"version\":\"5.2.1\",\"user\":\"et\",\"method\":\"least-connections\"}"
"raw": "{\"type\":\"phpmyadmin\",\"domain\":\"tenetur\",\"aliases\":[\"aut\"],\"php_version\":\"7.4\",\"web_directory\":\"public\",\"source_control\":\"quasi\",\"repository\":\"organization\\\/repository\",\"branch\":\"main\",\"composer\":true,\"version\":\"5.2.1\",\"user\":\"deleniti\",\"method\":\"round-robin\"}"
},
"description": "Create a new site."
},
@ -2245,7 +2416,7 @@
{
"id": "id",
"key": "id",
"value": "43",
"value": "12",
"description": "The ID of the site."
}
]
@ -2297,7 +2468,7 @@
{
"id": "site_id",
"key": "site_id",
"value": "43",
"value": "9",
"description": "The ID of the site."
}
]
@ -2349,7 +2520,7 @@
{
"id": "site_id",
"key": "site_id",
"value": "43",
"value": "19",
"description": "The ID of the site."
}
]
@ -2367,7 +2538,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"method\":\"ip-hash\",\"servers\":[\"accusantium\"]}"
"raw": "{\"method\":\"ip-hash\",\"servers\":[\"dolores\"]}"
},
"description": "Update load balancer."
},
@ -2404,7 +2575,7 @@
{
"id": "site_id",
"key": "site_id",
"value": "43",
"value": "16",
"description": "The ID of the site."
}
]
@ -2422,7 +2593,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"aliases\":[\"ut\"]}"
"raw": "{\"aliases\":[\"aut\"]}"
},
"description": "Update aliases."
},
@ -2459,7 +2630,7 @@
{
"id": "site_id",
"key": "site_id",
"value": "43",
"value": "3",
"description": "The ID of the site."
}
]
@ -2477,7 +2648,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"script\":\"culpa\"}"
"raw": "{\"script\":\"qui\"}"
},
"description": "Update site deployment script"
},
@ -2514,7 +2685,7 @@
{
"id": "site_id",
"key": "site_id",
"value": "43",
"value": "16",
"description": "The ID of the site."
}
]
@ -2583,7 +2754,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Amya Jones\",\"provider\":\"github\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"Jerry Donnelly\",\"provider\":\"github\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43: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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Emil Leannon\",\"provider\":\"github\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"Eleazar Pacocha Sr.\",\"provider\":\"github\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -2618,7 +2789,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"provider\":\"bitbucket\",\"name\":\"eligendi\",\"token\":\"debitis\",\"url\":\"http:\\\/\\\/fahey.com\\\/aliquid-sapiente-labore-adipisci-eum-laborum\",\"username\":\"rerum\",\"password\":\"wBK}NHxV:x\"}"
"raw": "{\"provider\":\"github\",\"name\":\"aliquam\",\"token\":\"voluptatem\",\"url\":\"https:\\\/\\\/brown.org\\\/placeat-optio-illum-eius-ipsa.html\",\"username\":\"a\",\"password\":\"_\\\/_,9'\\\/6z;9\"}"
},
"description": ""
},
@ -2626,7 +2797,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Dr. Janae Tremblay PhD\",\"provider\":\"github\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Ahmad Kulas\",\"provider\":\"github\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -2672,7 +2843,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Marguerite Aufderhar\",\"provider\":\"github\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Mr. Marquis Kunde IV\",\"provider\":\"github\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -2713,7 +2884,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"blanditiis\",\"token\":\"non\",\"url\":\"https:\\\/\\\/www.veum.com\\\/eum-voluptas-non-rem-non-rerum-tempora-quam\",\"username\":\"porro\",\"password\":\">BW~{`#d,}=U!XxC!t]\",\"global\":false}"
"raw": "{\"name\":\"laudantium\",\"token\":\"nulla\",\"url\":\"http:\\\/\\\/wiza.com\\\/\",\"username\":\"numquam\",\"password\":\"MlD,$m:8^A\",\"global\":false}"
},
"description": ""
},
@ -2721,7 +2892,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Johan Crooks\",\"provider\":\"github\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"Mrs. Arvilla Mitchell\",\"provider\":\"github\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -2819,7 +2990,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":null,\"user\":null,\"name\":\"Dr. Virgie Reilly\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"user\":null,\"name\":\"Horace Gutmann\",\"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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":null,\"user\":null,\"name\":\"Dr. Pansy Kunde DVM\",\"created_at\":null,\"updated_at\":null},{\"id\":null,\"user\":null,\"name\":\"Ms. Maximillia DuBuque Sr.\",\"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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -2860,7 +3031,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"key_id\":\"et\",\"name\":\"provident\",\"public_key\":\"incidunt\"}"
"raw": "{\"key_id\":\"debitis\",\"name\":\"illum\",\"public_key\":\"dignissimos\"}"
},
"description": "Deploy ssh key to server."
},
@ -2868,7 +3039,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":null,\"user\":null,\"name\":\"Miss Penelope Sipes IV\",\"created_at\":null,\"updated_at\":null}",
"body": "{\"id\":null,\"user\":null,\"name\":\"Uriah Harvey\",\"created_at\":null,\"updated_at\":null}",
"name": ""
}
]
@ -2966,7 +3137,7 @@
{
"header": [],
"code": 200,
"body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"sit\",\"provider\":\"ftp\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"repudiandae\",\"provider\":\"local\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43: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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"body": "{\"data\":[{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"autem\",\"provider\":\"s3\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"},{\"id\":6,\"project_id\":null,\"global\":true,\"name\":\"nihil\",\"provider\":\"ftp\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.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\":\"&laquo; Previous\",\"active\":false},{\"url\":\"\\\/?page=1\",\"label\":\"1\",\"active\":true},{\"url\":null,\"label\":\"Next &raquo;\",\"active\":false}],\"path\":\"\\\/\",\"per_page\":25,\"to\":2,\"total\":2}}",
"name": ""
}
]
@ -3001,7 +3172,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"provider\":\"est\",\"name\":\"id\",\"token\":\"repellendus\",\"key\":\"ducimus\",\"secret\":\"possimus\"}"
"raw": "{\"provider\":\"est\",\"name\":\"voluptatem\",\"token\":\"delectus\",\"key\":\"natus\",\"secret\":\"saepe\"}"
},
"description": ""
},
@ -3009,7 +3180,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"sequi\",\"provider\":\"dropbox\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"omnis\",\"provider\":\"local\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -3055,7 +3226,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"alias\",\"provider\":\"ftp\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"molestiae\",\"provider\":\"dropbox\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]
@ -3096,7 +3267,7 @@
],
"body": {
"mode": "raw",
"raw": "{\"name\":\"ullam\",\"global\":true}"
"raw": "{\"name\":\"exercitationem\",\"global\":true}"
},
"description": ""
},
@ -3104,7 +3275,7 @@
{
"header": [],
"code": 200,
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"at\",\"provider\":\"ftp\",\"created_at\":\"2025-03-29T20:43:56.000000Z\",\"updated_at\":\"2025-03-29T20:43:56.000000Z\"}",
"body": "{\"id\":5,\"project_id\":null,\"global\":true,\"name\":\"dolorum\",\"provider\":\"s3\",\"created_at\":\"2025-03-31T15:27:17.000000Z\",\"updated_at\":\"2025-03-31T15:27:17.000000Z\"}",
"name": ""
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
location {{ $from }} {
return {{ $mode }} {{ $to }};
}

View File

@ -0,0 +1,5 @@
@foreach($site->activeRedirects as $redirect)
location = {{ $redirect->from }} {
return {{ $redirect->mode }} {{ $redirect->to }};
}
@endforeach

View File

@ -1,7 +0,0 @@
if ! echo '{!! $redirects !!}' | sudo tee /etc/nginx/conf.d/{{ $domain }}_redirects; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! sudo service nginx restart; then
echo 'VITO_SSH_ERROR' && exit 1
fi

View File

@ -1,9 +1,9 @@
@if ($site->activeSsl && $site->force_ssl)
server {
listen 80;
server_name {{ $site->domain }} {{ $site->getAliasesString() }};
return 301 https://$host$request_uri;
}
server {
listen 80;
server_name {{ $site->domain }} {{ $site->getAliasesString() }};
return 301 https://$host$request_uri;
}
@endif
@php
@ -12,22 +12,22 @@
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
upstream {{ $backendName }} {
@switch($site->type_data['method'] ?? \App\Enums\LoadBalancerMethod::ROUND_ROBIN)
@case(\App\Enums\LoadBalancerMethod::LEAST_CONNECTIONS)
least_conn;
@break
@case(\App\Enums\LoadBalancerMethod::IP_HASH)
ip_hash;
@break
@default
@endswitch
@if ($site->loadBalancerServers()->count() > 0)
@foreach($site->loadBalancerServers as $server)
server {{ $server->ip }}:{{ $server->port }} {{ $server->backup ? 'backup' : '' }} {{ $server->weight ? 'weight='.$server->weight : '' }};
@endforeach
@else
server 127.0.0.1;
@endif
@switch($site->type_data['method'] ?? \App\Enums\LoadBalancerMethod::ROUND_ROBIN)
@case(\App\Enums\LoadBalancerMethod::LEAST_CONNECTIONS)
least_conn;
@break
@case(\App\Enums\LoadBalancerMethod::IP_HASH)
ip_hash;
@break
@default
@endswitch
@if ($site->loadBalancerServers()->count() > 0)
@foreach($site->loadBalancerServers as $server)
server {{ $server->ip }}:{{ $server->port }} {{ $server->backup ? 'backup' : '' }} {{ $server->weight ? 'weight='.$server->weight : '' }};
@endforeach
@else
server 127.0.0.1;
@endif
}
@endif
@ -71,11 +71,11 @@
@if ($site->type === \App\Enums\SiteType::LOAD_BALANCER)
location / {
proxy_pass http://{{ $backendName }}$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://{{ $backendName }}$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
@endif
@ -87,4 +87,6 @@
location ~ /\.(?!well-known).* {
deny all;
}
@include('ssh.services.webserver.nginx.redirects', ['site' => $site])
}

View File

@ -0,0 +1,82 @@
<?php
namespace Tests\Feature\API;
use App\Enums\RedirectStatus;
use App\Facades\SSH;
use App\Models\Redirect;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Laravel\Sanctum\Sanctum;
use Tests\TestCase;
class RedirectsTest extends TestCase
{
use RefreshDatabase;
public function test_create_redirect(): void
{
SSH::fake();
Sanctum::actingAs($this->user, ['read', 'write']);
$this->json('POST', route('api.projects.servers.sites.redirects.create', [
'project' => $this->server->project,
'server' => $this->server,
'site' => $this->site,
]), [
'from' => 'testing/path',
'to' => 'https://example.com',
'mode' => 301,
])
->assertSuccessful()
->assertJsonFragment([
'from' => 'testing/path',
'to' => 'https://example.com',
'mode' => 301,
'status' => RedirectStatus::READY,
]);
}
public function test_see_redirects_list(): void
{
Sanctum::actingAs($this->user, ['read']);
/** @var Redirect $redirect */
$redirect = Redirect::factory()->create([
'site_id' => $this->site->id,
]);
$this->json('GET', route('api.projects.servers.sites.redirects.index', [
'project' => $this->server->project,
'server' => $this->server,
'site' => $this->site,
]))
->assertSuccessful()
->assertJsonFragment([
'from' => $redirect->from,
'to' => $redirect->to,
'mode' => $redirect->mode,
'status' => $redirect->status,
]);
}
public function test_delete_redirect(): void
{
SSH::fake();
Sanctum::actingAs($this->user, ['write']);
$this->json('DELETE', route('api.projects.servers.sites.redirects.delete', [
'project' => $this->server->project,
'server' => $this->server,
'site' => $this->site,
'redirect' => $this->redirect->id,
]))
->assertSuccessful()
->assertNoContent();
$this->assertDatabaseMissing('redirects', [
'id' => $this->redirect->id,
]);
}
}

View File

@ -0,0 +1,82 @@
<?php
namespace Tests\Feature;
use App\Enums\RedirectStatus;
use App\Facades\SSH;
use App\Models\Redirect;
use App\Web\Pages\Servers\Sites\Pages\Redirects\Index;
use App\Web\Pages\Servers\Sites\Pages\Redirects\Widgets\RedirectsList;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class RedirectsTest extends TestCase
{
use RefreshDatabase;
public function test_see_redirects(): void
{
$this->actingAs($this->user);
$redirect = Redirect::factory()->create([
'site_id' => $this->site->id,
]);
$this->get(
Index::getUrl([
'server' => $this->server,
'site' => $this->site,
])
)
->assertSuccessful()
->assertSee($redirect->from);
}
public function test_delete_redirect(): void
{
SSH::fake();
$this->actingAs($this->user);
$redirect = Redirect::factory()->create([
'site_id' => $this->site->id,
]);
Livewire::test(RedirectsList::class, [
'server' => $this->server,
'site' => $this->site,
])
->callTableAction('delete', $redirect->id)
->assertSuccessful();
$this->assertDatabaseMissing('redirects', [
'id' => $redirect->id,
]);
}
public function test_create_redirect(): void
{
SSH::fake();
$this->actingAs($this->user);
Livewire::test(Index::class, [
'server' => $this->server,
'site' => $this->site,
])
->callAction('create', [
'from' => 'some-path',
'to' => 'https://example.com/redirect',
'mode' => 301,
])
->assertSuccessful();
$this->assertDatabaseHas('redirects', [
'from' => 'some-path',
'to' => 'https://example.com/redirect',
'mode' => 301,
'status' => RedirectStatus::READY,
]);
}
}

View File

@ -7,6 +7,7 @@
use App\Enums\UserRole;
use App\Enums\Webserver;
use App\Models\NotificationChannel;
use App\Models\Redirect;
use App\Models\Server;
use App\Models\Site;
use App\Models\SourceControl;
@ -24,6 +25,8 @@ abstract class TestCase extends BaseTestCase
protected Site $site;
protected Redirect $redirect;
protected NotificationChannel $notificationChannel;
public const EXPECT_SUCCESS = true;
@ -108,6 +111,10 @@ private function setupSite(): void
'web_directory' => 'public',
'branch' => 'main',
]);
$this->redirect = Redirect::factory()->create([
'site_id' => $this->site->id,
]);
}
private function setupKeys(): void