[SUPPORT] pihole for unRaid - Spants repo


Recommended Posts

Strange, and the dns of all the clients is pointing to your server?

 

No, I just tried it with my phone and my iMac but I get no websites loading and no queries on the docker either

 

So the network settings on the imac and phone all point the dns to Tower?. Anything in logs?

 

Yep! tried on both devices but I can't get websites loaded

 

Logs on the docker are the following

 

==> /var/log/pihole.log <==
Dec 10 18:55:10 dnsmasq[188]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
Dec 10 18:55:10 dnsmasq[188]: using nameserver 8.8.4.4#53
Dec 10 18:55:10 dnsmasq[188]: using nameserver 8.8.8.8#53
Dec 10 18:55:10 dnsmasq[188]: read /etc/hosts - 7 addresses
Dec 10 18:55:11 dnsmasq[188]: read /etc/pihole/gravity.list - 104818 addresses
Dec 15 22:27:46 dnsmasq[187]: started, version 2.76 cachesize 10000

Dec 15 22:27:46 dnsmasq[187]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
Dec 15 22:27:46 dnsmasq[187]: using nameserver 8.8.4.4#53
Dec 15 22:27:46 dnsmasq[187]: using nameserver 8.8.8.8#53
Dec 15 22:27:46 dnsmasq[187]: read /etc/hosts - 7 addresses
Dec 15 22:27:46 dnsmasq[187]: read /etc/pihole/gravity.list - 105936 addresses

==> /var/log/nginx/access.log <==
10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin HTTP/1.1" 301 185 "http://10.0.1.2:81/Dashboard" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/ HTTP/1.1" 200 15878 "http://10.0.1.2:81/Dashboard" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/bootstrap/css/bootstrap.min.css HTTP/1.1" 200 121260 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/font-awesome-4.5.0/css/font-awesome.min.css HTTP/1.1" 200 27466 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/ionicons-2.0.1/css/ionicons.min.css HTTP/1.1" 200 51284 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/dataTables.bootstrap.min.css HTTP/1.1" 200 4247 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/AdminLTE.min.css HTTP/1.1" 200 81913 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/skin-blue.min.css HTTP/1.1" 200 3094 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/js-warn.css HTTP/1.1" 200 1236 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/pihole/header.js HTTP/1.1" 200 113 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/jquery.min.js HTTP/1.1" 200 84345 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/bootstrap/js/bootstrap.min.js HTTP/1.1" 200 36868 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/app.min.js HTTP/1.1" 200 9222 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/jquery.dataTables.min.js HTTP/1.1" 200 82480 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/dataTables.bootstrap.min.js HTTP/1.1" 200 1960 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/Chart.min.js HTTP/1.1" 200 52091 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/other/jquery-ui.min.js HTTP/1.1" 200 240027 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/pihole/index.js HTTP/1.1" 200 7246 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/js/pihole/footer.js HTTP/1.1" 200 2264 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/img/logo.svg HTTP/1.1" 200 3109 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/img/donate.gif HTTP/1.1" 200 3592 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/SourceSansPro/SourceSansPro.css HTTP/1.1" 200 1505 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/api.php?summary HTTP/1.1" 200 123 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/font-awesome-4.5.0/fonts/fontawesome-webfont.woff2?v=4.5.0 HTTP/1.1" 200 66624 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/api.php?summaryRaw&topItems HTTP/1.1" 200 150 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/api.php?getForwardDestinations HTTP/1.1" 200 12 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/css/ionicons-2.0.1/fonts/ionicons.ttf?v=2.0.0 HTTP/1.1" 200 188508 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/api.php?summaryRaw&getQuerySources HTTP/1.1" 200 137 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/api.php?getQueryTypes HTTP/1.1" 200 12 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:48 +0000] "GET /admin/img/favicon.png HTTP/1.1" 200 8675 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:27:58 +0000] "GET /admin/api.php?summary HTTP/1.1" 200 123 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:08 +0000] "GET /admin/api.php?summary HTTP/1.1" 200 123 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:18 +0000] "GET /admin/api.php?overTimeData HTTP/1.1" 500 5 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:18 +0000] "GET /admin/api.php?summary HTTP/1.1" 200 123 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"


==> /var/log/nginx/error.log <==

2016/12/15 22:28:18 [error] 201#201: *3 FastCGI sent in stderr: "PHP message: PHP Warning: max(): Array must contain at least one element in /var/www/html/admin/data.php on line 256

PHP message: PHP Warning: min(): Array must contain at least one element in /var/www/html/admin/data.php on line 257

PHP message: PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/admin/data.php on line 260" while reading response header from upstream, client: 10.0.1.36, server: , request: "GET /admin/api.php?overTimeData HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "10.0.1.2", referrer: "http://10.0.1.2/admin/"


==> /var/log/nginx/access.log <==
10.0.1.36 - - [15/Dec/2016:22:28:21 +0000] "GET /admin/queries.php HTTP/1.1" 200 11422 "http://10.0.1.2/admin/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:21 +0000] "GET /admin/js/pihole/queries.js HTTP/1.1" 200 723 "http://10.0.1.2/admin/queries.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:21 +0000] "GET /admin/api.php?getAllQueries&_=1481840901223 HTTP/1.1" 200 21 "http://10.0.1.2/admin/queries.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:21 +0000] "GET /admin/bootstrap/fonts/glyphicons-halflings-regular.woff2 HTTP/1.1" 200 18028 "http://10.0.1.2/admin/queries.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:26 +0000] "GET /admin/queries.php HTTP/1.1" 200 11422 "http://10.0.1.2/admin/queries.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

10.0.1.36 - - [15/Dec/2016:22:28:26 +0000] "GET /admin/api.php?getAllQueries&_=1481840906319 HTTP/1.1" 200 21 "http://10.0.1.2/admin/queries.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12"

Link to comment

I had the same problem but changed the Network Type from Bridge mode to Host mode

 

ok, it doesn't do that job - it checks to see if they are in a blacklist and then forwards the request to the dns server ips on the template. Are they correct?

I think so! here's all my configuration (it even shows the URL with the unRAID server IP)

 

thanks a lot!

pihole.PNG.bda25df4b7258724c549f5cba211ba86.PNG

Link to comment

I had the same problem but changed the Network Type from Bridge mode to Host mode

 

ok, it doesn't do that job - it checks to see if they are in a blacklist and then forwards the request to the dns server ips on the template. Are they correct?

I think so! here's all my configuration (it even shows the URL with the unRAID server IP)

 

thanks a lot!

 

thanks for your reply, just tried it but it does the same; docker and web ui it's working but not receiving queries

Link to comment
  • 2 weeks later...

I also had trouble getting the timezone. Linking the docker's /etc/localtime to Unraid /etc/localtime did not work. This is what finally worked for me from a fresh docker install:

 

root@Tower:/mnt/user/appdata/pihole# docker exec -it pihole sh
/ # date
Sun Jan  1 17:04:36 GMT 2017
/ # apk add -U tzdata
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tzdata (2016j-r0)
Executing busybox-1.25.1-r0.trigger
OK: 97 MiB in 35 packages
/ # date
Sun Jan  1 12:04:47 EST 2017
/ #

Link to comment
  • 3 weeks later...

I have trouble starting the docker :

Error response from daemon: driver failed programming external connectivity on endpoint pihole (1c7319a1d5c481ac0de574ccfd94efa08ad7f020b5ce04922baf61de480fedca): Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use.

 

I have no other dns server running in unraid

Link to comment

I have trouble starting the docker :

Error response from daemon: driver failed programming external connectivity on endpoint pihole (1c7319a1d5c481ac0de574ccfd94efa08ad7f020b5ce04922baf61de480fedca): Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use.

 

I have no other dns server running in unraid

 

what dockers and plugins do you have installed?

Link to comment

I have trouble starting the docker :

Error response from daemon: driver failed programming external connectivity on endpoint pihole (1c7319a1d5c481ac0de574ccfd94efa08ad7f020b5ce04922baf61de480fedca): Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use.

 

I have no other dns server running in unraid

 

what dockers and plugins do you have installed?

 

Hi i have the following running :

hydra
openvpn-as
oscam
pihole
radarr
SABnzbd
Sonarr
tvheadend
WebGrabPlusPlus

Community Applications
Dynamix System Statistics
Dynamix webGui
Nerd Tools
Powerdown Package (2.20)
Tips and Tweaks
unRAID DVB Edition
unRAID Server OS

Link to comment

I seem to run into the same problem: port 53 is already in use. I tested disabling all my other dockers: no use.

 

The port seems to be in use by libvirt, KVM. The ip address (192.168.122.1) is used for managing the virtual network used by the VMs.

 

When I disable the VM manager (I saw earlier someone killed all instances of dnsmasq, this will have the same effect) I can run this docker without problems and I see requests getting blocked. That's good :)

 

Only thing is I also need the KVM for my VM :-\

 

I have tried to change the config of dnsmasq and have rebooted multiple times, but I do not seem to get them to coexist :(

 

Anyone who has been able to get this situation working? It seems more users run into this problem.

 

 

Link to comment
  • 2 weeks later...
  • 2 weeks later...
On 2/13/2017 at 5:40 PM, spants said:

The new update for pihole allows for passwords for the front end. To remove or change the password:

 

1) ssh to your unraid tower

2) docker exec -ti pihole /bin/bash

3) sudo pihole -a -p newpassword (blank to remove)

 

 

Could we set this in an Unraid variable and pass it through as the container is started?

Link to comment
  • 2 weeks later...
On 1/22/2017 at 4:02 PM, pjrellum said:

I seem to run into the same problem: port 53 is already in use. I tested disabling all my other dockers: no use.

 

The port seems to be in use by libvirt, KVM. The ip address (192.168.122.1) is used for managing the virtual network used by the VMs.

 

When I disable the VM manager (I saw earlier someone killed all instances of dnsmasq, this will have the same effect) I can run this docker without problems and I see requests getting blocked. That's good :)

 

Only thing is I also need the KVM for my VM :-\

 

I have tried to change the config of dnsmasq and have rebooted multiple times, but I do not seem to get them to coexist :(

 

Anyone who has been able to get this situation working? It seems more users run into this problem.

 

 

 

Any solution yet? 

Link to comment
  • 2 weeks later...
On 1/22/2017 at 6:02 AM, pjrellum said:

I seem to run into the same problem: port 53 is already in use. I tested disabling all my other dockers: no use.

 

The port seems to be in use by libvirt, KVM. The ip address (192.168.122.1) is used for managing the virtual network used by the VMs.

 

When I disable the VM manager (I saw earlier someone killed all instances of dnsmasq, this will have the same effect) I can run this docker without problems and I see requests getting blocked. That's good :)

 

Only thing is I also need the KVM for my VM :-\

 

I have tried to change the config of dnsmasq and have rebooted multiple times, but I do not seem to get them to coexist :(

 

Anyone who has been able to get this situation working? It seems more users run into this problem.

 

 

 

 

You could give pipework a try, it's a docker container that allows you to assign a unique ip address to other containers. This way pihole can be on a different ip allowing both to have port 53 open.

Link to comment

Hi, I just wanted to share that I was able to get this working very easily after some messing around.  I discovered this post that made it simple:

 

 

This way PiHole runs on it's own ip and network adapter so the ports don't interfere with any other docker containers or Unraids host.

  • Upvote 1
Link to comment
15 hours ago, compout said:

Hi, I just wanted to share that I was able to get this working very easily after some messing around.  I discovered this post that made it simple:

 

 

This way PiHole runs on it's own ip and network adapter so the ports don't interfere with any other docker containers or Unraids host.

 

 

Great! thanks for the info

Link to comment
  • 2 weeks later...
  • 2 weeks later...

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.