ghostwriters / dockstarter Goto Github PK
View Code? Open in Web Editor NEWDockSTARTer helps you get started with running apps in Docker.
Home Page: https://dockstarter.com/
License: MIT License
DockSTARTer helps you get started with running apps in Docker.
Home Page: https://dockstarter.com/
License: MIT License
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
System (please complete the following information):
Additional context
Add any other context about the problem here.
This will be a little different from the rest because a lot of it can be done on the wiki which doesn't require pull requests. Here's the list of things that were on the Roadmap that we'd like to see happen for Documentation.
Not sure how to go about this yet, open to discussion.
The goal is a wiki page explaining how to take an existing locally installed app (such as one installed by ATK) and switch from running locally to running in docker (DS).
The basics are:
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
System (please complete the following information):
Additional context
Add any other context about the problem here.
Docker supports Named Volumes which could possibly simplify declaring volumes in apps yml files. It should also make volumes more configurable in Portainer.
Create a function that can be manually called from a command flag (-b
maybe) or from the main menu. The function can also be used by various other parts of the script, such as before making a large change to the env file automatically.
See #71 for previous discussion
Not sure how to add the Help Wanted tag.
Describe the bug
I changed the .env file Universal settings as suggested in the Setup your environment section of the Advanced Usage section of the wiki. Used dockstarter to create my desired containers (radarr, sonarr, sabnzbd, etc) When trying to update default folders (such as temporary download folder in sabnzbd) or bulk add movies in Radarr using my Movies library, the respective service says these folders do not exist. I'm assuming it's because these folders exist outside of the containers.
To Reproduce
Steps to reproduce the behavior:
DOCKERCONFDIR=~/.docker/config
DOCKERSHAREDDIR=~/.docker/shared
DOWNLOADSDIR=/media/myMedia/completeTorrent
MEDIADIR_BOOKS=/media/myMedia/random
MEDIADIR_COMICS=/media/myMedia/random
MEDIADIR_MOVIES=/media/myMedia/Movies
MEDIADIR_MUSIC=/media/myMedia/random
MEDIADIR_TV=/media/myMedia/TV_Shows
PGID=1000
PUID=1000
TZ=America/New_York
`
5. sudo bash ~/.docker/main.sh
6. Configure apps, Select desired apps.
7. When asking What would you like to set for DOCKERCONFDIR, I select keep current ~/.docker/config, it then asks to create the directory. Same of SHAREDDIR.
8. It asks to set DOWNLOADSDIR, I keep current. Does this for all other directories listed in Universal Settings.
Expected behavior
Should be able to access /media/myMedia from within these services.
Screenshots
If applicable, add screenshots to help explain your problem.
System (please complete the following information):
Additional context
Also changed folder permissions to 775, so folder permissions are not the issue. I am a linux novice and my only experience with docker is with dockstarter.
This may lead to the removal of app.override.yml files in DS. The code for overrides is not complicated or difficult to maintain, but the only purpose it serves is separating the yml files on a per app basis rather than using a single file for overrides.
They are getting very close to redundant.
Maybe have update actually only update DS and then prompt to run the install routine (which actually also updates along the way)
Done in #123
.env
then enable UI as well.docker-compose up -d
using UI rather then Terminal prompt.It looks like posters are being saved in '/app/watcher/userdata/posters/' inside the container, makes it difficult to backup.
If you don't have them and restore the config folders, you end up with a broken website.
Describe the bug
https://github.com/GhostWriters/DockSTARTer/blob/3a25d307129894ef7a15b3a128d4eb1f7f193328/scripts/menu_value_prompt.sh is prompting for the DOCKERCONFDIR
but on first run it does not exist. Users cannot proceed beyond this menu without exiting DS, creating the folder manually, and then rerunning DS.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Allow moving forward to the next menu in the process. Possibly prompt to create a folder if one does not exist in the specified location.
Additional context
Hyjinx_gitlab (on gitter) @apperrault @oranblackwell
TimeZone
on host and set in .env
file. (suggest changing system if not correct)user
and group
and set in .env
file along with PUID and PGIDdocker-compose up -d
(making it optional)name: Feature request
about: Please add bridge mode for Deluge! 👍
Add a -e
flag to update someone's existing .env
file with missing lines from the latest .env.example
file. We need to think about how to make this work so we don't lose any custom variables the user may have added on their own. Backups of .env files should be made as of #134
Relevant code snip
ls -at compose/.env.backups/.env.* | head -1
should get the most recent backup of the env file (so that variables can be laid back into the original)
Certainly other Linux distros from the supported map in the docker install script. Possibly even MacOS if we can get docker/compose/yq installed easily.
Already started in #171
Needs testing.
See #71 for previous discussion
I have installed the script on Ubuntu 16.04 and ran into one issue.
When I run the generator:
sudo bash ~/.docker/main.sh -g
I get:
Could not find /home/user/.docker/compose/.apps/watchtower/watchtower.ports.yml file.
Followed by:
Would you like to run your selected containers now? [Yn]
Everything else processes with no further issues. Is this something I need to create or is the script responsible for this?
I also wanted to follow up on using secure ports. I'm trying to change to secure ports when possible, but the script reverts to default ports when I add them manually. You shared this in the Getting Started section and I'm hoping for instructions.
We encourage you to have a look at the generated docker-compose.yml file, however if you wish to make changes please consider using overrides (documentation coming soon).
Current notes:
DelugeVPN:
I think my install got corrupted somehow. I reinstalled it and it's working now.
rTorrentVPN:
Unable to get running so far.
SABNZBdVPN:
Runs. Need to check to see if running through VPN. Ideas?
TransmissionVPN:
This one works. No problems.
Hi
Could you add transmission with openvpn, please?
Plex could be useful as well.
Cheers
Get the tests to install and update their own dependencies each run. Then remove the before section of Travis (since the validations and other scripts should be running those actions)
This will require a file named CONTRIBUTING.md
in the docs folder and should reference the standards currently mentioned on the wiki. Don't just link to the wiki page, include that info in the MD file so the wiki page can be removed.
Describe the bug
I have an error message at the end of installation
Screenshots
arck0s@*****:~$ cd ~/.docker/compose
arck0s@*****:~/.docker/compose$ cp .env.example .env
arck0s@*****:~/.docker/compose$ sudo nano .env
[sudo] Mot de passe de arck0s :
arck0s@*****:~/.docker/compose$ sudo nano .env
arck0s@*****:~/.docker/compose$ bash ~/.docker/main.sh -g
Could not find /home/arck0s/.docker/compose/.apps/watchtower/watchtower.ports.yml file.
Would you like to run your selected containers now? [Yn]y
/bin/sh: /tmp/_MEIPLhLO0/libtinfo.so.5: no version information available (required by /bin/sh)
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
`
System (please complete the following information):
Additional context
I read the other issue, but my English is very bad to use gitter easily
Would like input menus for ID, TZ, folders, and possible other things to present a menu similar to this:
~/my_custom_docker/config
~/.docker/config
(for certain variables this should be replaced by Use System
such as with TZ)The last option should fire off a new menu that would be something like the current input prompt, but just prefill the current value (don't bother showing current/default because it would be in the previous screen) and allow the user to change the input.
https://gist.github.com/nemchik/2ba3e7514143e9260ff12096c960ffca
https://github.com/morpheus65535/bazarr/wiki/Installation---Docker
It now has hf and 64
Describe the bug
I created 2 override files to alter the directory structure on the mounted volumes. From your wiki page on Overrides I expected the 'volumes' section to be merged with the pre-configured volumes section (expected 4 volumes per service) but the overrides became the only volumes when viewing the re-generated docker.compose.yml
Steps to Reproduce
Create sonar.overwride.yml and radarr.override.yml in their .apps/<service>
directory as follows:
sonar.overwride.yml
services:
sonarr:
volumes:
- ${MEDIADIR_TV}:/media/tv
radarr.overwride.yml
services:
radarr:
volumes:
- ${MEDIADIR_TV}:/media/movies
Regenerate docker-compose.yml with:
$ sudo bash ~/.docker/main.sh -g
Result:
sonarr:
container_name: sonarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
image: lsioarmhf/sonarr
ports:
- ${SONARR_PORT_8989}:8989
restart: always
volumes:
- ${MEDIADIR_TV}:/media/tv
radarr:
container_name: radarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
image: lsioarmhf/radarr
ports:
- ${RADARR_PORT_7878}:7878
restart: always
volumes:
- ${MEDIADIR_MOVIES}:/media/movies
Expected result:
sonarr:
container_name: sonarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
image: lsioarmhf/sonarr
ports:
- ${SONARR_PORT_8989}:8989
restart: always
volumes:
- ${DOCKERCONFDIR}/sonarr:/config
- ${DOWNLOADSDIR}:/downloads
- ${MEDIADIR_TV}:/tv
- ${MEDIADIR_TV}:/media/tv
radarr:
container_name: radarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
image: lsioarmhf/radarr
ports:
- ${RADARR_PORT_7878}:7878
restart: always
volumes:
- ${DOCKERCONFDIR}/radarr:/config
- ${DOWNLOADSDIR}:/downloads
- ${MEDIADIR_MOVIES}:/movies
- ${MEDIADIR_MOVIES}:/media/movies
System (please complete the following information):
Linux raspberrypi 4.14.34-v7+ #1110 SMP Mon Apr 16 15:18:51 BST 2018 armv7l GNU/Linux
Raspbian GNU/Linux 9 (stretch)
HypriotOS/armv7: pirate@black-pearl in ~
$ sudo bash ~/.docker/main.sh -g
[INFO] Would you like to run your selected containers now?
[Yn]y
chmod: cannot access '/usr/local/bin/docker-compose': No such file or directory
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the services
key, or omit the version
key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
I'm using the GUI version on RPi3B+. When I go to Configure Apps I want to deselect an app I've already configured ie. uninstall it, but it doesnt seem to have any effect. At the end when it says do I want to launch the selected containers now, I was hopping that it would end any previous containers and only keep the selected ones. I've tried manually stopping and them removing all containers but rerunning the GUI keeps re-installing them.
Describe the bug
Error in starting the containers installed by DockSTARTER. The final step of the app installation process always fails for me. In the particular I get following error:
ERROR: for radarr Cannot start service radarr: error while creating mount source path '/home/username/.docker/config/radarr': mkdir /home/username/.docker/config: permission denied. The same error goes for all the containers I tried to install. I installed this on a new Ubuntu 18.04 server. I also attempted to give all permissions to the .docker but that did not seem to solve the issue. I used all the default values for the installation expect the media library location.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Hopefully no error.
System (please complete the following information):
Additional context
Add any other context about the problem here.
The titles used in the whiptail menus would be nice if they were consistent. This may also mean modifying the messages shown on the menu itself. Possibly juse use DockSTARTer
as the title across all menus and have more description about what the menu does inside the menu itself as needed (where possible).
Describe the bug
Yq external library seems to not install correctly on Ubuntu Server. I posted an issue on their library over here.
To Reproduce
Steps to reproduce the behavior:
System (please complete the following information):
Installation doesn't complete correctly on Pi. I've broken it down into 2 parts.
To Reproduce
Part One
Steps to reproduce the behavior:
sudo apt-get install git -y
sudo bash ~/.docker/main.sh -i
pi@raspberrypi:~ $ sudo bash ~/.docker/main.sh -i
[INFO] Checking root permissions.
[INFO] Updating repositories.
[INFO] Upgrading packages.
[INFO] Installing dependencies.
[INFO] Removing unused packages.
[INFO] Cleaning up unused packages.
[INFO] Installing latest yq.
[INFO] Installing latest docker. Please be patient, this will take a while.
pi@raspberrypi:~ $
pi@raspberrypi:~ $ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
sudo usermod -aG docker $USER
and then rebooting seems to work:pi@raspberrypi:~ $ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ad0f38092cf2: Pull complete
Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm32v7)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
pi@raspberrypi:~ $ docker-compose ps
-bash: docker-compose: command not found
pi@raspberrypi:~ $ cd .docker/compose/
pi@raspberrypi:~/.docker/compose $ docker-compose ps
-bash: docker-compose: command not found
The offical Linux way to install docker-compose is to use GitHub, but there aren't pre-built binaries for ARM. The easiest way I've found is to use pip.
2. Install pip via sudo apt-get install python-pip -y
3. Install docker-compose via sudo pip install docker-compose
4. Once it completes you can then run docker-compose as expected.
pi@raspberrypi:~/.docker/compose $ sudo bash ~/.docker/main.sh -g
[INFO] Checking root permissions.
[INFO] Generating docker-compose.yml file.
[INFO] Required files included.
[INFO] /home/pi/.docker/compose/.env found.
[INFO] Checking for enabled apps.
[INFO] PORTAINER_NETWORK_MODE supports port mapping. Ports will be included.
[INFO] All configurations for PORTAINER are included.
[INFO] WATCHTOWER_NETWORK_MODE supports port mapping. Ports will be included.
[INFO] All configurations for WATCHTOWER are included.
[INFO] Merging docker-compose.yml complete.
[INFO] Would you like to run your selected containers now?
[Yn]y
[INFO] Taking ownership of /home/pi/.docker for user 1000 and group 1000
[INFO] Setting folder permissions in /home/pi/.docker to 755
[INFO] Setting file permissions in /home/pi/.docker to 644
Creating network "compose_default" with the default driver
Pulling watchtower (v2tec/watchtower:armhf-latest)...
armhf-latest: Pulling from v2tec/watchtower
a5415f98d52c: Pull complete
c3f7208ad77c: Pull complete
66d662b1bb9f: Pull complete
Digest: sha256:63abf3fc71a46b8fc46674342766d976e6a97d6c70d2560a0986ec63c1784812
Status: Downloaded newer image for v2tec/watchtower:armhf-latest
Pulling portainer (portainer/portainer:)...
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
078b760c5ca5: Pull complete
Digest: sha256:166ea71afde944c36758bbe42389d18c100f431fe72aacdc2e8c32ae9d9f0535
Status: Downloaded newer image for portainer/portainer:latest
Creating portainer ... done
Creating watchtower ... done
pi@raspberrypi:~/.docker/compose $ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
portainer /portainer -H unix:///var/ ... Up 0.0.0.0:9000->9000/tcp
watchtower /watchtower --schedule 0 0 ... Up
.env
instead of apps.conf
for app selectionTZ
and localtime
in all containers (just in case).env
file from .env.example
if it is missingHave DS setup a network like ds_default
and use it on all apps in bridge mode instead of relying on the compose_default
network. This should give us a little more control over networking and allow for the possibility of other more advanced network types as well. Host networking should also be accounted for and handled differently with this approach.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.