An open API service indexing awesome lists of open source software.

https://github.com/levelzerotechnology/directadmin-go

A library to interface with a DirectAdmin installation's API
https://github.com/levelzerotechnology/directadmin-go

api directadmin library sdk-go

Last synced: 30 days ago
JSON representation

A library to interface with a DirectAdmin installation's API

Awesome Lists containing this project

README

          

# DirectAdmin Go SDK

Interface with a DirectAdmin installation using Go.

This library supports both the legacy/default DirectAdmin API, and their new modern API still in active development.

**Note: This is in an experimental state. While it's being used in production, the library is very likely to change (
especially in-line with DA's own changes). DA features are being added as needed on our end, but PRs are always welcome!
**

**If you wonder why something has been handled unusually, it's most likely a workaround required by one of DA's many
quirks.**

## Login as Admin / Reseller / User

To open a session as an admin/reseller/user, follow the following code block:

```go
package main

import (
"time"

"github.com/levelzerotechnology/directadmin-go"
)

func main() {
api, err := directadmin.New("https://your.da.address:2222", 5*time.Second)
if err != nil {
panic(err)
}

userCtx, err := api.LoginAsUser("your_username", "some_password_or_key")
if err != nil {
panic(err)
}

usage, err := userCtx.GetMyUserUsage()
if err != nil {
panic(err)
}

userCtx.User.Usage = *usage
}

```

From here, you can call user functions via `userCtx`.

For example, if you wanted to print each of your databases to your terminal:

```go
dbs, err := userCtx.GetDatabases()
if err != nil {
log.Fatalln(err)
}

for _, db := range dbs {
fmt.Println(db.Name)
}
```

## License

BSD licensed. See the [LICENSE](LICENSE) file for details.