saarg Posted May 11, 2020 Share Posted May 11, 2020 20 hours ago, bucky2076 said: saarg, the basic unraid template did not work for me, and I had to tear my hair out. DB_USER variable was incorrect. Needed to be DB_USERNAME Same issue for DB_PASS Passing IP/Port did not work for me on the DB_HOST /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='bookstack' --net='bridge' -e TZ="Australia/Sydney" -e HOST_OS="Unraid" -e 'DB_HOST'='192.168.92.254' -e 'DB_USERNAME'='ben' -e 'DB_PASSWORD'='xyz' -e 'DB_DATABASE'='bookstack' -e 'APP_URL'='' -e 'PUID'='99' -e 'PGID'='100' -e 'DB_PORT'='3306' -p '8083:80/tcp' -v '/mnt/user/appdata/bookstack':'/config':'rw' 'linuxserver/bookstack' I've moved on now, experimenting with Traefik for reverse proxy. The template is correct. You are supposed to use the variables in the template and there is nothing in the template that suggest adding the port in the db host variable. Not sure why it didn't work for you, but I think you might have had multiple errors in your template that led to this. Quote Link to comment
klogg Posted May 15, 2020 Share Posted May 15, 2020 On 4/24/2020 at 4:42 PM, xhaloz said: Jesus christ, thank you so much. I was going nuts. I used a password manager to generate the DB password and it had some symbols in it to include a '#'. I appreciate you!! Ha! I didn't expect such a fast pay-off on that. The password manager is exactly how I got into that place too. Glad it helped! Quote Link to comment
AcidReign Posted May 16, 2020 Share Posted May 16, 2020 On 5/15/2020 at 2:29 AM, klogg said: Ha! I didn't expect such a fast pay-off on that. The password manager is exactly how I got into that place too. Glad it helped! OH MY!!! Same with me... I was going crazy for weeks now... Thank you all 1 Quote Link to comment
Mogo Posted May 30, 2020 Share Posted May 30, 2020 Anyone know how to insert a link and get it to take you to that location? I click on the insert link option on the page and put www.google.com for the url. When I click on the link it doesn't do anything. I have to select to open in a new tab and then it appends the unraid address in front. It looks something like this (10.10.23.20:21312/www.google.com). Obviously the page won't open. Any ideas on how to fix this? Also how do I reorder pages in a chapter? I can click on move and reorder books and chapters, however, pages doesn't seem movable. Trying to have the pages sorted alphabetically. Thanks. Quote Link to comment
klogg Posted June 16, 2020 Share Posted June 16, 2020 I have another pro-tip for the masses. A little while ago it went from working perfectly to real website rendering issues, none of the assets loading correctly and unable to log in. I suspect this coincided with the arrival of the "reverse proxy URL" field in the container template, but that is pure speculation. To date I had the APP_URL defined in the .env file # /config/www/.env # Application URL # Remove the hash below and set a URL if using BookStack behind # a proxy, if using a third-party authentication option. # This must be the root URL that you want to host BookStack on. # All URL's in BookStack will be generated using this value. APP_URL=https://wiki.exampleTLD.com Now I see it is a variable that can be passed but it was blank. Cool, I fired in wiki.exampleTLD.com and moved on. Same problem. Mixed and matched, screwed around, I could see the Chrome console that it was nesting urls, e.g. wiki.exampleTLD.com/wiki.exampleTLD.com/page. Just not working. The answer is that you need the protocol in the variable, and remove it from the .env file. https://wiki.exampleTLD.com Back in action. Stay safe out there. 1 Quote Link to comment
WuZiMu Posted June 20, 2020 Share Posted June 20, 2020 (edited) Not sure if the issue I'm experiencing is with the container or Bookstack itself. I'm using the CA template and following the mariadb instructions from Gilbn's technicalramblings blog. It seems that the process chokes on an SQL command. Even after starting from a clean slate (i.e. delete and re-create the appdata/bookstack folder and bookstack database in mariadb) I get the same result. And the logs ------------------------------------- _ () | | ___ _ __ | | / __| | | / \ | | \__ \ | | | () | |_| |___/ |_| \__/ Brought to you by linuxserver.io ------------------------------------- To support LSIO projects visit: https://www.linuxserver.io/donate/ ------------------------------------- GID/UID ------------------------------------- User uid: 99 User gid: 100 ------------------------------------- [cont-init.d] 10-adduser: exited 0. [cont-init.d] 20-config: executing... [cont-init.d] 20-config: exited 0. [cont-init.d] 30-keygen: executing... using keys found in /config/keys [cont-init.d] 30-keygen: exited 0. [cont-init.d] 50-config: executing... App Key found - setting variable for seds Running config - db_user set /var/run/s6/etc/cont-init.d/50-config: line 67: warning: command substitution: ignored null byte in input /var/run/s6/etc/cont-init.d/50-config: line 67: warning: command substitution: ignored null byte in input Migrating: 2015_08_29_105422_add_roles_and_permissions Illuminate\Database\QueryException : SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists (SQL: create table `roles` (`id` int unsigned not null auto_increment primary key, `name` varchar(191) not null, `display_name` varchar(191) null, `description` varchar(191) null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci') at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669 665| // If an exception occurs when attempting to run a query, we'll format the error 666| // message to include the bindings with SQL, which will make this exception a 667| // lot more helpful to the developer instead of just the database's errors. 668| catch (Exception $e) { > 669| throw new QueryException( 670| $query, $this->prepareBindings($bindings), $e 671| ); 672| } 673| Exception trace: 1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists") /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123 2 PDOException::("SQLSTATE[42S01]: Base table or view already exists: 1050 Table '`bookstack`.`roles`' already exists") /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:121 Please use the argument -v to see more details. [cont-init.d] 50-config: exited 0. [cont-init.d] 99-custom-files: executing... [custom-init] no custom files found exiting... [cont-init.d] 99-custom-files: exited 0. [cont-init.d] done. [services.d] starting services [services.d] done. Edited June 20, 2020 by WuZiMu Adding additional information Quote Link to comment
boomam Posted July 4, 2020 Share Posted July 4, 2020 I can confirm that this container is of a much lower quality/attention to detail from linuxserver.io than they usually provide. After much faffing around and seeing DB auth errors in the log, what fixed it for me was: 1. Setting the IP to be the host (standard) and specifying the port for the Db in the same variable Example: Database host (DB_HOST) = UNRAID_IP:PORT 2. Making sure that the DB password had no special characters whatsoever. Mine seemed to error with ANY i picked. What a faff! Quote Link to comment
Richamc01 Posted August 6, 2020 Share Posted August 6, 2020 Where is all of the data for bookstack saved? I believe it is saved in the database, but my mariadb saves to the appdata folder which lives on my cache drive. I am right to be concerned about high usage on my cache drive? Quote Link to comment
macattack Posted August 29, 2020 Share Posted August 29, 2020 (edited) Something is wrong with this template I have configured it several times and it refuses to connect to the database. My config is Host: unraid.home.my.domain User: bookstack Pass: (set correctly can login remotely and locally) Database Name: (bookstack and created new database bookstack2) Why is it launching with lowercase bookstack but authing with uppercase Bookstack? Launch Command Quote /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='bookstack' --net='bridge' -e TZ="America/New_York" -e HOST_OS="Unraid" -e 'DB_HOST'='unraid.home.ajmcateer.us' -e 'DB_USER'='bookstack' -e 'DB_PASS'='*******' -e 'DB_DATABASE'='bookstack2' -e 'APP_URL'='' -e 'PUID'='99' -e 'PGID'='100' -p '8082:80/tcp' -v '/mnt/user/appdata/bookstack':'/config':'rw' 'linuxserver/bookstack' Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'Bookstack'@'172.17.0.1' (using password: YES) (SQL: select * from information_schema.tables where table_schema = bookstack2 and table_name = migrations and table_type = 'BASE TABLE') at /var/www/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669 665| // If an exception occurs when attempting to run a query, we'll format the error 666| // message to include the bindings with SQL, which will make this exception a 667| // lot more helpful to the developer instead of just the database's errors. 668| catch (Exception $e) { > 669| throw new QueryException( 670| $query, $this->prepareBindings($bindings), $e 671| ); 672| } 673| Exception trace: 1 Doctrine\DBAL\Driver\PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'Bookstack'@'172.17.0.1' (using password: YES)") /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:31 2 PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'Bookstack'@'172.17.0.1' (using password: YES)") /var/www/html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27 EDIT: Changing DB_USER and DB PASS to DB_USERNAME and DB_PASSWORD fixed it something is wrong with the template. Edited August 30, 2020 by macattack Quote Link to comment
tehdreamer Posted September 17, 2020 Share Posted September 17, 2020 I had the same issue of connection refused from the mariadb docker. for me, the error was the account I created only had permissions to connect locally, not from another docker. what worked for me was: set the DB_HOST value to the IP address of the Unraid server and the nonstandard port that I had set up for the mariadb docker like this: 192.168.10.10:33069 and granting the privileges for the [email protected] (the network segment I run the mariadb and bookstack on, since the request via the unraid IP will be routed through there). technicalramblings has a great article on this. adding this as it might help someone down the line. Quote Link to comment
dartworth Posted September 19, 2020 Share Posted September 19, 2020 (edited) Something I noticed this morning. Every time this container is restarted, the lines upload_max_filesize = 100MB post_max_size = 100MB is added to the file php-local.ini Which then causes an error and I am unable to login. Once I remove the extra lines I can login. Any ideas? Here is a screenshot of the bookstack error. TIA Edited September 19, 2020 by dartworth Quote Link to comment
dartworth Posted September 20, 2020 Share Posted September 20, 2020 New update has resolved the issue. I just deleted the php-local.ini file and restarted and all good. Thanks for the help. Quote Link to comment
yarrow Posted September 23, 2020 Share Posted September 23, 2020 When using Docker and Traefik, I was unable to connect ("Bad Gateway") and getting the error: nc: getaddrinfo: Name does not resolve This may be obvious to most, but I wanted to post my solution in case it is helpful to someone else. If you are bind mounting a Docker volume to /config on the containers, it is necessary to chown the volume before running docker-compose up: docker create volume bookstack chown -R 1000:1000 /var/lib/docker/volumes/bookstack docker-compose up -d Thank you, Linuxserver.io, for the awesome service you have provided. Quote Link to comment
saarg Posted September 24, 2020 Share Posted September 24, 2020 12 hours ago, yarrow said: When using Docker and Traefik, I was unable to connect ("Bad Gateway") and getting the error: nc: getaddrinfo: Name does not resolve This may be obvious to most, but I wanted to post my solution in case it is helpful to someone else. If you are bind mounting a Docker volume to /config on the containers, it is necessary to chown the volume before running docker-compose up: docker create volume bookstack chown -R 1000:1000 /var/lib/docker/volumes/bookstack docker-compose up -d Thank you, Linuxserver.io, for the awesome service you have provided. You are not using unraid, so this is not the correct place to post this. There should not be any need to chown the volume. Then you have something wrong in your setup. Join our discord if you want to figure it out. Quote Link to comment
MacDingo Posted September 30, 2020 Share Posted September 30, 2020 Well after countless hours of trying to get this docker started I finally managed to reach the login screen. Thanks to the pointers about the issue with special characters in the password. Mine did not have a # but had a few other special characters: }[24+KsM;7=)AVe24zHR64U2NtLG/RH It would not generate any error and I would just get a blank screen after launching the docker. The database would stay empty too. Changing my password from the above to one without special characters did the trick! Just in case this helps anyone else Quote Link to comment
Janddy Posted November 9, 2020 Share Posted November 9, 2020 Is it possible to use duckdns for reverse proxy with bookstack? I followed gilbn's guide but when I got up to the Nginx section it didn't seem to work. I noticed in the comments of the code that I had to copy into the 'default' file in the swag appdata that it said Quote ## NOTE: The add_header Content-Security-Policy won't work with duckdns since you don't own the root domain. Just buy a domain. It's cheap Does that mean the entire reverse proxy won't work, or just that specific feature won't work? Sorry I'm not very familiar with web stuff like Content-Security-Policy. I have swag reverse proxy set up for multiple other containers using duckdns and I have also have bookstack running fine locally. I understand if the solution is to just buy a domain but I wanted to see if it was possible to do it the way I have everything else set up first. Quote Link to comment
Richamc01 Posted November 9, 2020 Share Posted November 9, 2020 Is it possible to use duckdns for reverse proxy with bookstack? I followed gilbn's guide but when I got up to the Nginx section it didn't seem to work. I noticed in the comments of the code that I had to copy into the 'default' file in the swag appdata that it said Does that mean the entire reverse proxy won't work, or just that specific feature won't work? Sorry I'm not very familiar with web stuff like Content-Security-Policy. I have swag reverse proxy set up for multiple other containers using duckdns and I have also have bookstack running fine locally. I understand if the solution is to just buy a domain but I wanted to see if it was possible to do it the way I have everything else set up first. I have mine working with swag and duck dns. Do you have your own domain? I can send you my working config file. Edit: I'm on mobile and Tapatalk was giving me issues with the quote inside of the quote. Gave up and deleted it. Sent from my iPhone using Tapatalk Quote Link to comment
Janddy Posted November 9, 2020 Share Posted November 9, 2020 That's good to hear. I think I only have my own subdomain - something similar to janddybookstack.duckdns.org. Your config file would be great if you don't mind. Quote Link to comment
Richamc01 Posted November 10, 2020 Share Posted November 10, 2020 10 hours ago, Janddy said: That's good to hear. I think I only have my own subdomain - something similar to janddybookstack.duckdns.org. Your config file would be great if you don't mind. Here you go, @Janddy. This is my config file for subdomain. Just make sure that you add the CNAME in the DNS settings of your domain provider. I followed one of SpaceInvader's videos to set up a different docker behind the reverse proxy and then just kind of fumbled my way through other ones. # make sure that your dns has a cname set for bookstack and that your bookstack container is named bookstack # Ensure you have the APP_URL Environment Variable set correctly in your Docker Run/Compose or in BookStack Env File (/www/.env) # https://github.com/linuxserver/docker-bookstack#docker server { listen 443 ssl; listen [::]:443 ssl; server_name bookstack.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia #include /config/nginx/authelia-server.conf; location / { #enable the next two lines for http auth #auth_basic "Restricted"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app bookstack; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } 1 Quote Link to comment
Janddy Posted November 10, 2020 Share Posted November 10, 2020 Thanks for that @Richamc01, I've managed to get it working after a bit of messing around. Looking at your config made me realize I forgot to change the server_name from bookstack.* to janddybookstack.* to match my duckdns subdomain (it's not janddybookstack, but you get the idea). Once I made that change the reverse proxy was working, but the page wasn't loading correctly. I remembered reading something about that before and sure enough, I scrolled up and @klogg had the answer: On 6/16/2020 at 10:59 AM, klogg said: Now I see it is a variable that can be passed but it was blank. Cool, I fired in wiki.exampleTLD.com and moved on. Same problem. Mixed and matched, screwed around, I could see the Chrome console that it was nesting urls, e.g. wiki.exampleTLD.com/wiki.exampleTLD.com/page. Just not working. The answer is that you need the protocol in the variable, and remove it from the .env file. https://wiki.exampleTLD.com Removing https:// from the APP_URL in the .env file fixes the problem, but restarting the container seems to overwrite the manual change and puts the https:// back in. Weirdly, even after the https:// is back in the file, loading the page still works. However It didn't work when I tried it on my phone at first, but then I removed the https:// again and it worked on my phone from then on. Maybe it's cached in each device's browser or something? Not a huge deal, but if anyone knows how to stop the .env file from being overwritten on restart that would be cool. Anyway everything is 99% functioning now so thanks @Richamc01 and @klogg for the assist and thanks to the linuxserver team for the docker 1 Quote Link to comment
Richamc01 Posted November 30, 2020 Share Posted November 30, 2020 No problem @Janddy! Sorry for the delayed response, but I do not remember needing to modify the .env file, but I will double-check. Unless you already figured this out? Quote Link to comment
Janddy Posted December 1, 2020 Share Posted December 1, 2020 I didn't figure it out but it seems to be working a lot better now. Maybe I was wrong or just confused about it overwriting itself, I'm not sure. But I'm not having any problems with it all now. Quote Link to comment
crazykidguy Posted December 6, 2020 Share Posted December 6, 2020 Is the key in the CA template correct for the username and pass? On a fresh pull, the keys DB_USER and DB_PASS don't seem to flow over to www/.env. Took me a couple hours of fidgeting to check .env and see the values weren't matching what I was passing through. I edited the keys on the template to DB_USERNAME and DB_PASSWORD and was able to hit the login page. Quote Link to comment
saarg Posted December 6, 2020 Share Posted December 6, 2020 4 hours ago, crazykidguy said: Is the key in the CA template correct for the username and pass? On a fresh pull, the keys DB_USER and DB_PASS don't seem to flow over to www/.env. Took me a couple hours of fidgeting to check .env and see the values weren't matching what I was passing through. I edited the keys on the template to DB_USERNAME and DB_PASSWORD and was able to hit the login page. Yes they are correct. I thought no this happens if you are using existing appdata to set up the container again. From my testing it worked with the env variables in the template. Quote Link to comment
Abe677 Posted January 12, 2021 Share Posted January 12, 2021 (edited) I’m new to Unraid, docker and many things here. I need some education or a pointer to some education. I’m going to use my desire to run BookStack as an example. Easy enough to find BookStack via Community Applications. When I click to install I’m faced with having to provide some information. Since I don’t have much experience I’m looking for some pointers on where to go to figure out what all those container settings should be? I watched a youtube video on someone installing BookStack via Portainer. In that video it appears the installation creates the BookStack app and the database to support it. However when I click to install on my Unraid server there’s a very clear “A database server is needed.” This leads to a series of rookie questions: 1. What database should I install? (I assume I need to install it first.) 2. Does the BookStack app take care of doing all the database work or is there some database configuration that’s required before BookStack is installed? I run into this information void with every docker I install. Sometimes I can find a good walk-thru document or video that helps, but so far I haven’t run into anything too helpful for BookStack on Unraid. Just looking for some pointers to how people track these answers down? Edited January 12, 2021 by Abe677 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.