From 5883d5d6ed1a31859be78c64b904a7444b8931c9 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:03:49 -0500 Subject: [PATCH 01/32] added rclone --- main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/main.go b/main.go index e56a255..067329e 100644 --- a/main.go +++ b/main.go @@ -17,6 +17,7 @@ import ( "github.com/bytesizedhosting/bcd/plugins/plexrequests" "github.com/bytesizedhosting/bcd/plugins/proxy" "github.com/bytesizedhosting/bcd/plugins/rocketchat" + "github.com/bytesizedhosting/bcd/plugins/rclone" "github.com/bytesizedhosting/bcd/plugins/rtorrent" "github.com/bytesizedhosting/bcd/plugins/sickrage" "github.com/bytesizedhosting/bcd/plugins/sonarr" @@ -67,6 +68,13 @@ func startApp(config *core.MainConfig) { } else { engine.Activate(plex) } + + rclone, err := rclone.New(dockerClient) + if err != nil { + log.Infoln("Could not enable plugin: ", err) + } else { + engine.Activate(rclone) + } rocketchat, err := rocketchat.New(dockerClient) if err != nil { From 0e897f1c09db6467c0aac3f8bcbdf8949a7f00ee Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:04:35 -0500 Subject: [PATCH 02/32] Create rclone --- plugins/rclone | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/rclone diff --git a/plugins/rclone b/plugins/rclone new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/plugins/rclone @@ -0,0 +1 @@ + From 05786084ae3532431f3ac842e8f68b6e1a347bba Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:05:25 -0500 Subject: [PATCH 03/32] Rename rclone to rclone1 --- plugins/rclone1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/rclone1 diff --git a/plugins/rclone1 b/plugins/rclone1 new file mode 100644 index 0000000..b498fd4 --- /dev/null +++ b/plugins/rclone1 @@ -0,0 +1 @@ +/ From 7fe85ab7ae280b8c1acf70b4ec6d350aa03b2888 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:05:33 -0500 Subject: [PATCH 04/32] Delete rclone1 --- plugins/rclone1 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 plugins/rclone1 diff --git a/plugins/rclone1 b/plugins/rclone1 deleted file mode 100644 index b498fd4..0000000 --- a/plugins/rclone1 +++ /dev/null @@ -1 +0,0 @@ -/ From 0b3a9a510374b2e2baa3098c6e7606c541a1bfa0 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:07:52 -0500 Subject: [PATCH 05/32] Delete rclone --- plugins/rclone | 1 - 1 file changed, 1 deletion(-) delete mode 100644 plugins/rclone diff --git a/plugins/rclone b/plugins/rclone deleted file mode 100644 index 8b13789..0000000 --- a/plugins/rclone +++ /dev/null @@ -1 +0,0 @@ - From 9a388b3ed32315f4d0b97ad507660e75e9fa00ea Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:08:41 -0500 Subject: [PATCH 06/32] Create test.md --- plugins/rclone/test.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/rclone/test.md diff --git a/plugins/rclone/test.md b/plugins/rclone/test.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/plugins/rclone/test.md @@ -0,0 +1 @@ + From b425e0b24dda091b9b4d6ad3c1f95be537a6b67f Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:08:48 -0500 Subject: [PATCH 07/32] Delete test.md --- plugins/rclone/test.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 plugins/rclone/test.md diff --git a/plugins/rclone/test.md b/plugins/rclone/test.md deleted file mode 100644 index 8b13789..0000000 --- a/plugins/rclone/test.md +++ /dev/null @@ -1 +0,0 @@ - From f2e8335fc4cbd84bbe293e49d11b582c2b61a45f Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 12:09:14 -0500 Subject: [PATCH 08/32] Create test.md --- plugins/rclone/test.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 plugins/rclone/test.md diff --git a/plugins/rclone/test.md b/plugins/rclone/test.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/plugins/rclone/test.md @@ -0,0 +1 @@ + From b3cccb89d3a706965cec32438d2eacf50c892440 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 14:44:39 -0500 Subject: [PATCH 09/32] Create rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 118 ++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 plugins/rclone/rpc_proxy.go diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go new file mode 100644 index 0000000..d697e73 --- /dev/null +++ b/plugins/rclone/rpc_proxy.go @@ -0,0 +1,118 @@ +package plugins + +import ( + log "github.com/Sirupsen/logrus" + "github.com/fsouza/go-dockerclient" + "os" +) + +func NewBaseRPC(parent appPlugin) *BaseRPC { + return &BaseRPC{parent} +} + +type BaseRPC struct { + base appPlugin +} + +type ActionOpts struct { + ContainerId string `json:"container_id"` + DeleteFolders []string `json:"delete_folders"` +} + +func (self *BaseRPC) Start(opts *ActionOpts, success *bool) error { + containerId := opts.ContainerId + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Starting container") + + err := self.base.Start(&AppConfig{ContainerId: containerId}) + + if err != nil { + return err + } + *success = true + + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Container started") + + return nil +} + +func (self *rcloneRPC) Status(opts *ActionOpts, state *docker.State) error { + containerId := opts.ContainerId + s, err := self.base.Status(&AppConfig{ContainerId: containerId}) + if err != nil { + return err + } + + *state = *s + return nil +} + +func (self *rcloneRPC) Stop(opts *ActionOpts, success *bool) error { + containerId := opts.ContainerId + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Stopping container") + + err := self.base.Stop(&AppConfig{ContainerId: containerId}) + + if err != nil { + return err + } + *success = true + + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Container stopped") + + return nil +} +func (self *rcloneRPC) Restart(opts *ActionOpts, success *bool) error { + containerId := opts.ContainerId + err := self.base.Restart(&AppConfig{ContainerId: containerId}) + + if err != nil { + return err + } + *success = true + + return nil +} +func (self *rcloneRPC) Uninstall(opts *ActionOpts, success *bool) error { + containerId := opts.ContainerId + + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Removing container") + + err := self.base.Uninstall(&AppConfig{ContainerId: containerId}) + + if err != nil { + return err + } + *success = true + + if len(opts.DeleteFolders) > 0 { + for _, folder := range opts.DeleteFolders { + log.WithFields(log.Fields{"folder": folder}).Info("Removing folder") + err := os.RemoveAll(folder) + if err != nil { + log.Infof("Could not delete folder '%s': '%s'", folder, err) + } + } + } + + log.WithFields(log.Fields{ + "container_id": containerId, + "name": self.base.GetName(), + }).Info("Container removed") + + return nil +} From fff89546b512a3db2ec65a544a528e2389a02241 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 14:46:34 -0500 Subject: [PATCH 10/32] Create manifest.yml --- plugins/rclone/data/manifest.yml | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 plugins/rclone/data/manifest.yml diff --git a/plugins/rclone/data/manifest.yml b/plugins/rclone/data/manifest.yml new file mode 100644 index 0000000..c0a835d --- /dev/null +++ b/plugins/rclone/data/manifest.yml @@ -0,0 +1,35 @@ +exposed_methods: +- Install +- Restart +- Stop +- Start +method_options: + Install: + - default_vault: /home/bytesized/rclone + hint: "" + name: config_folder + type: string + - default_value: /home/bytesized/rclone/data + hint: "" + name: data_folder + type: string + Restart: + - default_value: "" + hint: "" + name: rclone-bcd + type: string + Start: + - default_value: "" + hint: "" + name: rclone-bcd + type: string + Stop: + - default_value: "" + hint: "" + name: rclone-bcd + type: string +name: rClone +show_options: +- config_folder +- data_folder +version: 1 From 213e63de9e3a98f280a47cdd535deaa79486b731 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 14:49:05 -0500 Subject: [PATCH 11/32] Create rclone.go --- plugins/rclone/rclone.go | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 plugins/rclone/rclone.go diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go new file mode 100644 index 0000000..ff6795c --- /dev/null +++ b/plugins/rclone/rclone.go @@ -0,0 +1,89 @@ +package rclone + +import ( + log "github.com/Sirupsen/logrus" + "github.com/fsouza/go-dockerclient" + "github.com/bytesizedhosting/bcd/plugins" + "net/rpc" + "os" +) + +type rclone struct { + plugins.Base + imageName string +} + +func New(client *docker.Client) (*rclone, error) { + manifest, err := plugins.LoadManifest("sonarr") + + if err != nil { + return nil, err + } + + return &rclone{Base: plugins.Base{DockerClient: client, Name: "sonarr", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil +} + +func (self *rclone) RegisterRPC(server *rpc.Server) { + rpc := plugins.NewBaseRPC(self) + server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) +} + +type SonarrOpts struct { + plugins.BaseOpts +} + +func (self *rclone) Install(opts *rcloneOpts) error { + var err error + + err = opts.SetDefault(self.Name) + if err != nil { + return err + } + + log.WithFields(log.Fields{ + "plugin": self.Name, + "datafolder": opts.DataFolder, + "configfolder": opts.ConfigFolder, + "media_folder": opts.MediaFolder, + }).Debug("Sonarr options") + + err = os.MkdirAll(opts.ConfigFolder, 0755) + if err != nil { + return err + } + + log.Debugln("Pulling docker image", self.imageName) + err = self.DockerClient.PullImage(docker.PullImageOptions{Repository: self.imageName}, docker.AuthConfiguration{}) + if err != nil { + return err + } + + portBindings := map[docker.Port][]docker.PortBinding{ + "8989/tcp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}}, + } + + hostConfig := docker.HostConfig{ + PortBindings: portBindings, + Binds: plugins.DefaultBindings(opts), + } + + conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName} + + log.Debugln("Creating docker container") + c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_sonarr_" + opts.WebPort}) + + if err != nil { + return err + } + + log.Debugln("Starting docker container") + + err = self.DockerClient.StartContainer(c.ID, nil) + if err != nil { + return err + } + + opts.ContainerId = c.ID + + return nil +} From 58e6e4fbf3f678a787b535583828709ec50c1a9f Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 14:49:12 -0500 Subject: [PATCH 12/32] Delete test.md --- plugins/rclone/test.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 plugins/rclone/test.md diff --git a/plugins/rclone/test.md b/plugins/rclone/test.md deleted file mode 100644 index 8b13789..0000000 --- a/plugins/rclone/test.md +++ /dev/null @@ -1 +0,0 @@ - From e2ac2f5d9998ff5ae86c6165a57200c0807db686 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Mon, 7 Nov 2016 15:08:17 -0500 Subject: [PATCH 13/32] Create Dockerfile --- plugins/rclone/Dockerfile | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 plugins/rclone/Dockerfile diff --git a/plugins/rclone/Dockerfile b/plugins/rclone/Dockerfile new file mode 100644 index 0000000..5263651 --- /dev/null +++ b/plugins/rclone/Dockerfile @@ -0,0 +1,24 @@ +FROM bytesized/debian-base +MAINTAINER DedSec + +ENV version=1.2.17 + +RUN apt-get update +RUN apt-get install -y curl +RUN apt-get install -y wget +RUN apt-get install -y unzip +RUN apt-get install -y man + +RUN curl -O http://downloads.rclone.org/rclone-current-linux-amd64.zip +RUN unzip rclone-current-linux-amd64.zip +RUN cd rclone-*-linux-amd64 && \ + cp rclone /usr/sbin/ && \ + chown root:root /usr/sbin/rclone && \ + chmod 755 /usr/sbin/rclone + +VOLUME /config /media /data +COPY static / + +EXPOSE 64738 + + From e8bcbd7bb937bcc85af6a7c2388c354d791fa673 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 13:10:08 -0500 Subject: [PATCH 14/32] Update rclone.go --- plugins/rclone/rclone.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index ff6795c..73e7b78 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -14,13 +14,13 @@ type rclone struct { } func New(client *docker.Client) (*rclone, error) { - manifest, err := plugins.LoadManifest("sonarr") + manifest, err := plugins.LoadManifest("rclone") if err != nil { return nil, err } - return &rclone{Base: plugins.Base{DockerClient: client, Name: "sonarr", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil + return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil } func (self *rclone) RegisterRPC(server *rpc.Server) { @@ -70,7 +70,7 @@ func (self *rclone) Install(opts *rcloneOpts) error { conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName} log.Debugln("Creating docker container") - c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_sonarr_" + opts.WebPort}) + c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_rclone_" + opts.WebPort}) if err != nil { return err From 01e59696e6b3e1ad85be5ff36a6f8439766f8dfe Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 13:18:26 -0500 Subject: [PATCH 15/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index d697e73..4192a4d 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -1,4 +1,4 @@ -package plugins +package rclone import ( log "github.com/Sirupsen/logrus" @@ -19,7 +19,7 @@ type ActionOpts struct { DeleteFolders []string `json:"delete_folders"` } -func (self *BaseRPC) Start(opts *ActionOpts, success *bool) error { +func (self *RcloneRPC) Start(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -41,7 +41,7 @@ func (self *BaseRPC) Start(opts *ActionOpts, success *bool) error { return nil } -func (self *rcloneRPC) Status(opts *ActionOpts, state *docker.State) error { +func (self *RcloneRPC) Status(opts *RcloneOpts, state *docker.State) error { containerId := opts.ContainerId s, err := self.base.Status(&AppConfig{ContainerId: containerId}) if err != nil { @@ -52,7 +52,7 @@ func (self *rcloneRPC) Status(opts *ActionOpts, state *docker.State) error { return nil } -func (self *rcloneRPC) Stop(opts *ActionOpts, success *bool) error { +func (self *RcloneRPC) Stop(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -73,7 +73,7 @@ func (self *rcloneRPC) Stop(opts *ActionOpts, success *bool) error { return nil } -func (self *rcloneRPC) Restart(opts *ActionOpts, success *bool) error { +func (self *RcloneRPC) Restart(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId err := self.base.Restart(&AppConfig{ContainerId: containerId}) @@ -84,7 +84,7 @@ func (self *rcloneRPC) Restart(opts *ActionOpts, success *bool) error { return nil } -func (self *rcloneRPC) Uninstall(opts *ActionOpts, success *bool) error { +func (self *RcloneRPC) Uninstall(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ From 44acd834a42c5712b5dd15768a6a1f483292cf2d Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 14:19:19 -0500 Subject: [PATCH 16/32] Update Dockerfile --- plugins/rclone/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/Dockerfile b/plugins/rclone/Dockerfile index 5263651..d1fa7f3 100644 --- a/plugins/rclone/Dockerfile +++ b/plugins/rclone/Dockerfile @@ -17,7 +17,7 @@ RUN cd rclone-*-linux-amd64 && \ chmod 755 /usr/sbin/rclone VOLUME /config /media /data -COPY static / +COPY static / / EXPOSE 64738 From 7140e241c3ed849145cbdba0df21646ffad9689c Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 14:43:58 -0500 Subject: [PATCH 17/32] Update rclone.go --- plugins/rclone/rclone.go | 111 ++++++++++++++++++++------------------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 73e7b78..b9a4e04 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -1,89 +1,90 @@ + package rclone import ( - log "github.com/Sirupsen/logrus" - "github.com/fsouza/go-dockerclient" - "github.com/bytesizedhosting/bcd/plugins" - "net/rpc" - "os" + log "github.com/Sirupsen/logrus" + "github.com/fsouza/go-dockerclient" + "github.com/bytesizedhosting/bcd/plugins" + "net/rpc" + "os" ) type rclone struct { - plugins.Base - imageName string + plugins.Base + imageName string } func New(client *docker.Client) (*rclone, error) { - manifest, err := plugins.LoadManifest("rclone") + manifest, err := plugins.LoadManifest("rclone") - if err != nil { - return nil, err - } + if err != nil { + return nil, err + } - return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil + return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil } func (self *rclone) RegisterRPC(server *rpc.Server) { - rpc := plugins.NewBaseRPC(self) - server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) + rpc := plugins.NewBaseRPC(self) + server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) } type SonarrOpts struct { - plugins.BaseOpts + plugins.BaseOpts } func (self *rclone) Install(opts *rcloneOpts) error { - var err error + var err error - err = opts.SetDefault(self.Name) - if err != nil { - return err - } + err = opts.SetDefault(self.Name) + if err != nil { + return err + } - log.WithFields(log.Fields{ - "plugin": self.Name, - "datafolder": opts.DataFolder, - "configfolder": opts.ConfigFolder, - "media_folder": opts.MediaFolder, - }).Debug("Sonarr options") + log.WithFields(log.Fields{ + "plugin": self.Name, + "datafolder": opts.DataFolder, + "configfolder": opts.ConfigFolder, + "media_folder": opts.MediaFolder, + }).Debug("Sonarr options") - err = os.MkdirAll(opts.ConfigFolder, 0755) - if err != nil { - return err - } + err = os.MkdirAll(opts.ConfigFolder, 0755) + if err != nil { + return err + } - log.Debugln("Pulling docker image", self.imageName) - err = self.DockerClient.PullImage(docker.PullImageOptions{Repository: self.imageName}, docker.AuthConfiguration{}) - if err != nil { - return err - } + log.Debugln("Pulling docker image", self.imageName) + err = self.DockerClient.PullImage(docker.PullImageOptions{Repository: self.imageName}, docker.AuthConfiguration{}) + if err != nil { + return err + } - portBindings := map[docker.Port][]docker.PortBinding{ - "8989/tcp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}}, - } + portBindings := map[docker.Port][]docker.PortBinding{ + "8989/tcp": []docker.PortBinding{docker.PortBinding{HostPort: opts.WebPort}}, + } - hostConfig := docker.HostConfig{ - PortBindings: portBindings, - Binds: plugins.DefaultBindings(opts), - } + hostConfig := docker.HostConfig{ + PortBindings: portBindings, + Binds: plugins.DefaultBindings(opts), + } - conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName} + conf := docker.Config{Env: []string{"PUID=" + opts.User.Uid}, Image: self.imageName} - log.Debugln("Creating docker container") - c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_rclone_" + opts.WebPort}) + log.Debugln("Creating docker container") + c, err := self.DockerClient.CreateContainer(docker.CreateContainerOptions{Config: &conf, HostConfig: &hostConfig, Name: "bytesized_rclone_" + opts.WebPort}) - if err != nil { - return err - } + if err != nil { + return err + } - log.Debugln("Starting docker container") + log.Debugln("Starting docker container") - err = self.DockerClient.StartContainer(c.ID, nil) - if err != nil { - return err - } + err = self.DockerClient.StartContainer(c.ID, nil) + if err != nil { + return err + } - opts.ContainerId = c.ID + opts.ContainerId = c.ID - return nil + return nil } From 725899e9682755b3a9ccaff49a23b931183ee6c3 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 14:49:23 -0500 Subject: [PATCH 18/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index 4192a4d..9e90531 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -6,7 +6,7 @@ import ( "os" ) -func NewBaseRPC(parent appPlugin) *BaseRPC { +func NewBaseRPC(parent appPlugin) *rcloneRPC { return &BaseRPC{parent} } @@ -19,7 +19,7 @@ type ActionOpts struct { DeleteFolders []string `json:"delete_folders"` } -func (self *RcloneRPC) Start(opts *RcloneOpts, success *bool) error { +func (self *rcloneRPC) Start(opts *rcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -41,7 +41,7 @@ func (self *RcloneRPC) Start(opts *RcloneOpts, success *bool) error { return nil } -func (self *RcloneRPC) Status(opts *RcloneOpts, state *docker.State) error { +func (self *rcloneRPC) Status(opts *rcloneOpts, state *docker.State) error { containerId := opts.ContainerId s, err := self.base.Status(&AppConfig{ContainerId: containerId}) if err != nil { @@ -52,7 +52,7 @@ func (self *RcloneRPC) Status(opts *RcloneOpts, state *docker.State) error { return nil } -func (self *RcloneRPC) Stop(opts *RcloneOpts, success *bool) error { +func (self *rcloneRPC) Stop(opts *rcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -73,7 +73,7 @@ func (self *RcloneRPC) Stop(opts *RcloneOpts, success *bool) error { return nil } -func (self *RcloneRPC) Restart(opts *RcloneOpts, success *bool) error { +func (self *rcloneRPC) Restart(opts *rcloneOpts, success *bool) error { containerId := opts.ContainerId err := self.base.Restart(&AppConfig{ContainerId: containerId}) @@ -84,7 +84,7 @@ func (self *RcloneRPC) Restart(opts *RcloneOpts, success *bool) error { return nil } -func (self *RcloneRPC) Uninstall(opts *RcloneOpts, success *bool) error { +func (self *rcloneRPC) Uninstall(opts *rcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ From 73b6907d2d935eab45e6d4a11f5a4bf9b4e2f1ee Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 14:50:29 -0500 Subject: [PATCH 19/32] Delete Dockerfile --- plugins/rclone/Dockerfile | 24 ------------------------ 1 file changed, 24 deletions(-) delete mode 100644 plugins/rclone/Dockerfile diff --git a/plugins/rclone/Dockerfile b/plugins/rclone/Dockerfile deleted file mode 100644 index d1fa7f3..0000000 --- a/plugins/rclone/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM bytesized/debian-base -MAINTAINER DedSec - -ENV version=1.2.17 - -RUN apt-get update -RUN apt-get install -y curl -RUN apt-get install -y wget -RUN apt-get install -y unzip -RUN apt-get install -y man - -RUN curl -O http://downloads.rclone.org/rclone-current-linux-amd64.zip -RUN unzip rclone-current-linux-amd64.zip -RUN cd rclone-*-linux-amd64 && \ - cp rclone /usr/sbin/ && \ - chown root:root /usr/sbin/rclone && \ - chmod 755 /usr/sbin/rclone - -VOLUME /config /media /data -COPY static / / - -EXPOSE 64738 - - From f017ef5918af141d061dd4365ea902e0cd8d8eff Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Tue, 8 Nov 2016 16:02:24 -0500 Subject: [PATCH 20/32] Update rclone.go --- plugins/rclone/rclone.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index b9a4e04..7cff7e9 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -21,7 +21,7 @@ func New(client *docker.Client) (*rclone, error) { return nil, err } - return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/sonarr"}, nil + return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/rclone"}, nil } func (self *rclone) RegisterRPC(server *rpc.Server) { From ec60d1c408b4f6a873939cd48ac9e1171fafb7a9 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 07:24:57 -0500 Subject: [PATCH 21/32] Update rclone.go --- plugins/rclone/rclone.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 7cff7e9..2f64c66 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -1,4 +1,3 @@ - package rclone import ( @@ -29,7 +28,7 @@ func (self *rclone) RegisterRPC(server *rpc.Server) { server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) } -type SonarrOpts struct { +type rcloneOpts struct { plugins.BaseOpts } @@ -46,7 +45,7 @@ func (self *rclone) Install(opts *rcloneOpts) error { "datafolder": opts.DataFolder, "configfolder": opts.ConfigFolder, "media_folder": opts.MediaFolder, - }).Debug("Sonarr options") + }).Debug("rclone options") err = os.MkdirAll(opts.ConfigFolder, 0755) if err != nil { From 618de94f58109c88bc2ed1bd6349afcc13063a3f Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 10:04:58 -0500 Subject: [PATCH 22/32] Update main.go --- main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.go b/main.go index 067329e..9b6852c 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ import ( "github.com/bytesizedhosting/bcd/plugins/plexrequests" "github.com/bytesizedhosting/bcd/plugins/proxy" "github.com/bytesizedhosting/bcd/plugins/rocketchat" - "github.com/bytesizedhosting/bcd/plugins/rclone" + "github.com/Dedsec1/bcd/plugins/rclone" "github.com/bytesizedhosting/bcd/plugins/rtorrent" "github.com/bytesizedhosting/bcd/plugins/sickrage" "github.com/bytesizedhosting/bcd/plugins/sonarr" From 86b0bcf0bb7dfb8e3476cea5ab7b0973f5592c59 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 10:24:00 -0500 Subject: [PATCH 23/32] Update rclone.go --- plugins/rclone/rclone.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 2f64c66..010eb14 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -8,31 +8,31 @@ import ( "os" ) -type rclone struct { +type Rclone struct { plugins.Base imageName string } -func New(client *docker.Client) (*rclone, error) { +func New(client *docker.Client) (*Rclone, error) { manifest, err := plugins.LoadManifest("rclone") if err != nil { return nil, err } - return &rclone{Base: plugins.Base{DockerClient: client, Name: "rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/rclone"}, nil + return &Rclone{Base: plugins.Base{DockerClient: client, Name: "Rclone", Version: 1, Manifest: manifest}, imageName: "bytesized/rclone"}, nil } -func (self *rclone) RegisterRPC(server *rpc.Server) { +func (self *Rclone) RegisterRPC(server *rpc.Server) { rpc := plugins.NewBaseRPC(self) server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) } -type rcloneOpts struct { +type RcloneOpts struct { plugins.BaseOpts } -func (self *rclone) Install(opts *rcloneOpts) error { +func (self *Rclone) Install(opts *RcloneOpts) error { var err error err = opts.SetDefault(self.Name) From 012b6a05439823a00e8cd38a9097f3948993b58e Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 10:24:50 -0500 Subject: [PATCH 24/32] Update rclone.go --- plugins/rclone/rclone.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 010eb14..127dccb 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -1,4 +1,4 @@ -package rclone +package Rclone import ( log "github.com/Sirupsen/logrus" @@ -14,7 +14,7 @@ type Rclone struct { } func New(client *docker.Client) (*Rclone, error) { - manifest, err := plugins.LoadManifest("rclone") + manifest, err := plugins.LoadManifest("Rclone") if err != nil { return nil, err @@ -25,7 +25,7 @@ func New(client *docker.Client) (*Rclone, error) { func (self *Rclone) RegisterRPC(server *rpc.Server) { rpc := plugins.NewBaseRPC(self) - server.Register(&rcloneRPC{base: self, BaseRPC: *rpc}) + server.Register(&RcloneRPC{base: self, BaseRPC: *rpc}) } type RcloneOpts struct { @@ -45,7 +45,7 @@ func (self *Rclone) Install(opts *RcloneOpts) error { "datafolder": opts.DataFolder, "configfolder": opts.ConfigFolder, "media_folder": opts.MediaFolder, - }).Debug("rclone options") + }).Debug("Rclone options") err = os.MkdirAll(opts.ConfigFolder, 0755) if err != nil { From ad9d8c4305beafd36d4e906da0881dc2eb62bac8 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 10:42:20 -0500 Subject: [PATCH 25/32] Update rclone.go --- plugins/rclone/rclone.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 127dccb..929980e 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -1,4 +1,4 @@ -package Rclone +package rclone import ( log "github.com/Sirupsen/logrus" From 0de907d13dda8e006be3609a9c6ab62704e9cba9 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 14:40:36 -0500 Subject: [PATCH 26/32] Update manifest.yml --- plugins/rclone/data/manifest.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/rclone/data/manifest.yml b/plugins/rclone/data/manifest.yml index c0a835d..743b085 100644 --- a/plugins/rclone/data/manifest.yml +++ b/plugins/rclone/data/manifest.yml @@ -28,8 +28,14 @@ method_options: hint: "" name: rclone-bcd type: string -name: rClone +name: Rclone +rpc_name: RcloneRPC show_options: +- username +- password +- web_port - config_folder - data_folder version: 1 +web_url_format: http://##ip##:##web_port##/ +description: "Data synchronization and back-up tool build on bitorrent technology" From c76d168be10bc7815a2fa6cbcf427b01cd90cc3c Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 15:10:57 -0500 Subject: [PATCH 27/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index 9e90531..7d014ce 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -1,4 +1,4 @@ -package rclone +package Rclone import ( log "github.com/Sirupsen/logrus" @@ -6,8 +6,8 @@ import ( "os" ) -func NewBaseRPC(parent appPlugin) *rcloneRPC { - return &BaseRPC{parent} +func NewRcloneRPC(parent appPlugin) *RcloneRPC { + return &RcloneRPC{parent} } type BaseRPC struct { @@ -19,7 +19,7 @@ type ActionOpts struct { DeleteFolders []string `json:"delete_folders"` } -func (self *rcloneRPC) Start(opts *rcloneOpts, success *bool) error { +func (self *RcloneRPC) Start(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -41,7 +41,7 @@ func (self *rcloneRPC) Start(opts *rcloneOpts, success *bool) error { return nil } -func (self *rcloneRPC) Status(opts *rcloneOpts, state *docker.State) error { +func (self *RcloneRPC) Status(opts *RcloneOpts, state *docker.State) error { containerId := opts.ContainerId s, err := self.base.Status(&AppConfig{ContainerId: containerId}) if err != nil { @@ -52,7 +52,7 @@ func (self *rcloneRPC) Status(opts *rcloneOpts, state *docker.State) error { return nil } -func (self *rcloneRPC) Stop(opts *rcloneOpts, success *bool) error { +func (self *RcloneRPC) Stop(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ "container_id": containerId, @@ -73,7 +73,7 @@ func (self *rcloneRPC) Stop(opts *rcloneOpts, success *bool) error { return nil } -func (self *rcloneRPC) Restart(opts *rcloneOpts, success *bool) error { +func (self *RcloneRPC) Restart(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId err := self.base.Restart(&AppConfig{ContainerId: containerId}) @@ -84,7 +84,7 @@ func (self *rcloneRPC) Restart(opts *rcloneOpts, success *bool) error { return nil } -func (self *rcloneRPC) Uninstall(opts *rcloneOpts, success *bool) error { +func (self *RcloneRPC) Uninstall(opts *RcloneOpts, success *bool) error { containerId := opts.ContainerId log.WithFields(log.Fields{ From 59a610f4f200ec66b1f37c356b3419374320ddb5 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 15:11:25 -0500 Subject: [PATCH 28/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index 7d014ce..c5c62f4 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -10,7 +10,7 @@ func NewRcloneRPC(parent appPlugin) *RcloneRPC { return &RcloneRPC{parent} } -type BaseRPC struct { +type RcloneRPC struct { base appPlugin } From 423e03d2b23c91df8759bd34b52b8c556eb72f7b Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Wed, 9 Nov 2016 17:11:14 -0500 Subject: [PATCH 29/32] Update rclone.go From 8843945aefdc0dd590bcbb4f6c273fc649592566 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Sat, 12 Nov 2016 00:28:28 -0500 Subject: [PATCH 30/32] Update rclone.go --- plugins/rclone/rclone.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rclone.go b/plugins/rclone/rclone.go index 929980e..127dccb 100644 --- a/plugins/rclone/rclone.go +++ b/plugins/rclone/rclone.go @@ -1,4 +1,4 @@ -package rclone +package Rclone import ( log "github.com/Sirupsen/logrus" From efd588990d49b385f990c43834ce3dc31710f8f1 Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Sat, 12 Nov 2016 00:40:01 -0500 Subject: [PATCH 31/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index c5c62f4..bce057e 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -1,4 +1,4 @@ -package Rclone +package rclone import ( log "github.com/Sirupsen/logrus" From 66c1384f82aabd013784b9bd67fda3517723fdbd Mon Sep 17 00:00:00 2001 From: Dedsec1 Date: Sat, 12 Nov 2016 00:40:52 -0500 Subject: [PATCH 32/32] Update rpc_proxy.go --- plugins/rclone/rpc_proxy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rclone/rpc_proxy.go b/plugins/rclone/rpc_proxy.go index bce057e..c5c62f4 100644 --- a/plugins/rclone/rpc_proxy.go +++ b/plugins/rclone/rpc_proxy.go @@ -1,4 +1,4 @@ -package rclone +package Rclone import ( log "github.com/Sirupsen/logrus"