summaryrefslogtreecommitdiff
path: root/docs/docgen/html/_sources
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2019-03-24 07:10:19 -0400
committerPliable Pixels <pliablepixels@gmail.com>2019-03-24 07:10:19 -0400
commitd3df571368450dba3587e939f7312f9566740171 (patch)
tree4af3c51f3836ba4ac680293ef05b9fccf92c0725 /docs/docgen/html/_sources
parent13372acb76b5607909ffd11332a7b8817641e88b (diff)
moved to rtd
Diffstat (limited to 'docs/docgen/html/_sources')
-rw-r--r--docs/docgen/html/_sources/guides/FAQ.rst.txt762
-rw-r--r--docs/docgen/html/_sources/guides/contributing-language.rst.txt60
-rw-r--r--docs/docgen/html/_sources/guides/desktop.rst.txt113
-rw-r--r--docs/docgen/html/_sources/guides/source.rst.txt236
-rw-r--r--docs/docgen/html/_sources/guides/validating-api.rst.txt96
-rw-r--r--docs/docgen/html/_sources/index.rst.txt35
6 files changed, 0 insertions, 1302 deletions
diff --git a/docs/docgen/html/_sources/guides/FAQ.rst.txt b/docs/docgen/html/_sources/guides/FAQ.rst.txt
deleted file mode 100644
index 0182e65f..00000000
--- a/docs/docgen/html/_sources/guides/FAQ.rst.txt
+++ /dev/null
@@ -1,762 +0,0 @@
-zmNinja FAQ
-```````````
-
-What is the minimum supported version of ZoneMinder, Android and iOS?
----------------------------------------------------------------------
-
-You need a minimum of ZM 1.30.4 with APIs working. You may get it to run
-in previous versions, but I don't support them, so you are on your own.
-
-Starting version 1.3.26 of zmNinja, only IOS 10+ and Android 5.0+
-devices are supported.
-
-zmNinja Help
-------------
-
-I've just started uploading instructional videos for zmNinja. I'll add
-more over time. See them
-`here <https://github.com/pliablepixels/zmNinja/wiki/Help-Videos-for-zmNinja>`__
-
-Asking for refunds
-------------------
-
-For iOS: To get a refund, Apple wants you to contact them directly
-using `this <https://support.apple.com/en-us/HT204084>`__ link. There used to be
-a time when I could process a refund myself, but it seems Apple doesn't provide
-that interface anymore.
-
-For Android: If you're not happy with zmNinja and have bought the app,
-please `send me an email <mailto:pliablepixels@gmail.com>`__ **with your
-order id**.
-
-Note that depending on how long ago you made the order, I may not be
-able to refund. Its not my policy - The app/play stores disable the
-refund option. For example, I could not refund an app a user purchased 2
-years ago.
-
-Also, please read `Things you should own up
-to <#things-you-should-own-up-to>`__
-
-Things you should own up to
----------------------------
-
-Read the app description
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Both the Apple and Android stores have a clearly visible note on the app
-description that it requires a working API for ZoneMinder. If you are
-not willing to ensure the API works, please save yourself and me time.
-I'm sorry this is the first post, but I get emails from too many
-entitled/rude folks about APIs not working. Not my problem. Read below.
-Breathe.
-
-Try before buy
-~~~~~~~~~~~~~~
-
-Some users legitimately look around for an option to try before they buy
-and they are not savvy enough to `download the
-code <https://github.com/pliablepixels/zmNinja>`__ and compile (:doc:`source`) for
-themselves. Fair enough. In that case, `download the Desktop
-version <https://github.com/pliablepixels/zmNinja/releases>`__ of
-zmNinja. It's free and is the same code as mobile. Make sure the desktop
-version works before you buy the mobile version.
-
-The reason I don't have a "trial mobile version" is that I find the
-process too complex using in-app-purchases and chose not to do it to
-make life simpler for me. As a substitute, I do make the full code
-available for free and offer a desktop binary version free too.
-
-zmNinja doesn't work. Actually, even ZoneMinder web console doesn't work. You should fix this!
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yeah, look - I understand zmNinja won't work if ZoneMinder web console
-doesn't work. That being said, I really don't have time to help you
-debug ZoneMinder issues. I only develop the app (zmNinja). If you can't
-set up ZoneMinder properly, please post your questions in the `ZM
-forum <https://forums.zoneminder.com>`__. You'll find more qualified
-people to help you. I don't develop nor control ZoneMinder. It's a
-different set of folks. Now, I'll help you, but only after you have
-spent sufficient time trying your best and provide sufficient logs of
-what you have done. Also remember, if you buy zmNinja, **I'm happy to
-refund it anytime - just send me an email.**
-
-In short, I don't have the time to support ZoneMinder install issues -
-sorry about that
-
-zmNinja doesn't work. Zoneminder works, but I have no idea why APIs don't work. You should fix this!
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*Sigh*. I don't maintain ZoneMinder. I only develop the app. *You* need
-to make sure ZoneMinder APIs work. ZoneMinder web console doesn't use
-APIs. Neither does zmView. zmNinja does. It says so in the description
-of the app in the store. So feel free to fix your APIs, or ask me for a
-refund. Just don't whine to me, please, if your APIs are broken. I'm
-*not* going to fix them for you, especially if you act like its not your
-problem. `I'm perfectly fine if you choose not to use my
-app <https://medium.com/zmninja/no-soup-for-you-42ac0927952>`__, which
-is why I refund, anytime.
-
-I can't compile zmNinja, help me!
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-I put out the source code, so people who know how to compile are able to
-do it themselves. I also hope this will encourage folks to PR changes
-(though this has rarely happened). The problem however, is that
-dependencies/libraries keep changing. I just don't have the time to help
-debug. If it happens to me, I'll fix it. If it doesn't I have very
-limited time to remotely debug your setup issues. I'd much appreciate if
-you figured it out on your own. Feel free to create an issue after
-you've tried enough, but I can't guarantee I'll spend a lot of time on
-source code compile issues.
-
-How to report errors
---------------------
-
-- I don't know why something is not working if you don't provide
- sufficient inputs. Start by creating a `GitHub
- issue <https://github.com/pliablepixels/zmNinja/issues>`__ and please
- fill in the template correctly. If you don't want to post debug logs
- in the issue, `email <mailto:pliablepixels+zmNinja@gmail.com>`__ them
- to me and mention in the issue you've emailed them (you can email by
- going to logs screen and tapping on the envelope button (mobile) or
- you can download logs (cloud icon, desktop version)
-
-- If zmNinja was working, but it stopped after you upgraded ZoneMinder
- be sure to mention which version was working and which was not. In
- this case, please make sure you have validated the APIs work
-
-- Before you create an issue, please make sure you have read the
- sections on `connection
- issues <#connectionauthentication-issues>`__
- and `streaming <#live-streaming-issues>`__
- issues and Step 6 of :doc:`validating-api`
-
-- Its often hard to infer a problem especially when its due to some
- unique apache/nginx mungling you might have done but haven't told me
- about it. In such cases, try and give me remote access to your ZM for
- a day. Configure a limited user with just one monitor. It will save
- hours of frustration (mostly on my side). Thanks
-
-- I have released the desktop version free - download it
- `here <https://github.com/pliablepixels/zmNinja/releases>`__. Its
- always easier to debug on the desktop version - give it a try. If you
- hit Shift+Cmd/Ctrl+D it brings up a debug window - it helps debugging
-
-- Always tell me what your ZoneMinder & zmNinja versions are
-
-- If your app suddenly stopped working:
-
- - Send me DEBUG logs of the app
- - tell me what changed (got to be something. You updated the app,
- you upgraded ZM)
- - What exactly is not working?
-
-If zmNinja does not start on your device
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-There are some odd cases, where zmNinja does not start (or gets stuck in the splash screen) on specific devices.
-It is very hard for me to know why it fails on certain devices, but I can try. Here is what you need to do:
-
-You have to send me system logs of the device. To get system logs:
-
-- You will have to install ADB (Android Debug Bridge). It comes along with the Android SDK but if you don't have the SDK (most won't) you can refer to https://www.xda-developers.com/install-adb-windows-macos-linux/
-
-- Once ADB is installed, connect the phone to the browser (make sure you have allowed debugging on the phone menu - it should ask) and type in ``adb logcat >result.txt`` and try to start the app. A lot of logs will be generated. Please `email them to me <mailto:pliablepixels@gmail.com>`__
-
-
-
-Profile information storage related
------------------------------------
-
-zmNinja is not saving my information. It keeps asking me to re-enter all my data
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-I've seen this happen in two cases: \* You are running out of space.
-Clean up some space and try again \* On specific Android devices,
-typically running Android OS less than 6.0, some (2-3) users have
-reported this issue. I still don't have a good answer. Please update to
-the latest app version and send me debug logs, please
-
-I updated my zmNinja app and all my server settings were cleared. Why?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Sorry. I've made several releases where due to programming errors,
-settings got wiped out. However, starting v1.3.021 for Android and
-v1.3.025 for Android, I've introduced the facility to sync with the
-cloud (Google Drive/iCloud). This is the settings option. It is enabled
-by default. This means if you uninstall the app and install again, the
-settings should get restored. Note that both in iOS and Android, backup
-schedule is managed by the OS. You can force a backup going to settings
-and forcing a backup, or wait till the OS backups (typically a few
-hours/phone plugged in/not being used)
-
-Do also note that 1.3.027 and beyond use a new WebView called WKWebView
-(because iOS deprecated the old webview). If you disabled iCloud you
-will have to re-enter your settings again (only once). This may not
-affect Android, but I don't know for sure.
-
-Connection/Authentication issues
---------------------------------
-
-General tips
-~~~~~~~~~~~~
-
-- Disable server redirects like 302 and then try if using the mobile
- app
-- To make sure there are no connection issues, launch your **phone
- browser** and try to reach ZoneMinder. If that doesn't work, neither
- with zmNinja. Many users try to access ZoneMinder from a desktop
- browser and/or on the same server it is running and forget the phone
- is a different device!
-- Some phones need the SSL certificate installed in the device
-- Specific SSL settings can cause issues with Android or iOS
-- Don't use funky/special characters in passwords - try changing it to
- a complex password without funky characters and try
-- Use the wizard - I've seen many examples of typos when the user
- thinks they don't have a typo
-- If you are using basic authentication, make sure your credentials are
- correct. A good way to test is to first disable basic auth and enable
- it after you are sure things work without basic auth.
-- Please note zmNinja does NOT support Digest authentication. So please
- don't put in digest auth info when zmNinja asks for basic
- authentication
-- Look at your ZM logs and zmNinja logs - they help isolate the problem
-
-Server Redirects
-~~~~~~~~~~~~~~~~
-
-If the Wizard fails to connect in the mobile app but works in the
-desktop app, it may be that your server is sending redirects.
-Unfortunately, the current mobile HTTP stack doesn't handle cookies with
-redirects well. Till this bug is fixed by the plugin author Wizard won't
-work. Note that if you are running ZM 1.32 or above, you can directly
-enter your settings without using the wizard and it will work because it
-will try and use the new ZM 1.32 ``login.json`` API first.
-
-Self signed certs
-~~~~~~~~~~~~~~~~~
-
-A lot of people use self-signed certs. I'd strongly recommend you use
-`LetsEncrypt <https://letsencrypt.org>`__ if you can. It's free. That
-being said zmNinja does support self signed certs. Make sure "Enable
-Strict SSL" is off in Developer settings. You will need to restart the
-app.
-
-SSL settings
-~~~~~~~~~~~~
-
-If you are getting ``SSL protocol/handshake errors`` in your logs, you
-very likely have specific ssl settings enabled server side that your
-device network stack does not support. Note that just because it works
-with the device browser does not mean it will work with zmNinja as
-zmNinja does not use the browser HTTP implementation in mobile devices.
-
-One use reported that a setting of ``ssl_ecdh_curve secp384r1`` in his
-nginx config was resulting in zmNinja Android not being able to connect
-to the server. Changing it to
-``ssl_ecdh_curve secp521r1:secp384r1:prime256v1;`` worked for him.
-
-I'd strongly recommend you remove all special ssl settings except the
-certificate and key file locations, make it work and then add the
-settings back one by one and see what works/does not work.
-
-Everything works when I use LAN IP, but I get "not authenticated" when I use WAN IP
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This is likely happening if you use self signed SSL certs. If you are
-using self signed certificated, you should make sure the "common name"
-matches the hostname (or public IP) of the server you are installing ZM
-in. If not, zmNinja's SSL handshake will fail.
-
-If you have used 'make-ssl-cert' or a similar tool that automatically
-generates the cert for you, its very likely you have certificate that
-uses the 'unix hostname' of your server. That will not work.
-
-Assuming you are usin apache and have SSL enabled, here is how to
-regenerate the certs (ubuntu specific, may need to tweak it for your
-distro)
-
-This will create a self-signed certificate/key pair and store it in
-/etc/apache2/ssl (you may have to create that directory, or store it
-elsewhere)
-
-::
-
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/zoneminder.key -out /etc/apache2/ssl/zoneminder.crt
-
-Next up, edit your apache ssl config (example
-/etc/apache2/sites-available/default-ssl.conf) And add/modify the
-following lines:
-
-::
-
- SSLCertificateFile /etc/apache2/ssl/zoneminder.crt
- SSLCertificateKeyFile /etc/apache2/ssl/zoneminder.key
-
-restart apache
-
-::
-
- sudo service apache2 restart
-
-Live streaming issues
----------------------
-
-Summary of Everything works, but I can't see live feed
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-*Please* be diligent in reviewing this list. You'd be surprised how many
-times I've had users tell me 'they have checked this list' only to find
-out later they skimmed details.
-
-- Please enable ``AUTH_HASH_LOGINS`` as well as set ``AUTH_RELAY`` to
- "hashed"
-
-- You think your APIs are working, but they are really not. If you open
- a browser and type in ``https://yourserver/zm/api/monitors.json`` and
- you see some text on top followed by monitor data, your APIs are
- *not* working. You need to search the forums and figure out how to
- get rid of that text.
-
-- Your ZoneMinder live view from the web console doesn't work either.
- If this is the case, fix ZoneMinder first. Before you say "web
- console works fine", make sure you are running it from a different
- computer from where ZM is running.
-- The phone/computer running zmNinja does not have access to your ZM
- server. For example, many people test the web console on their LAN
- but test zmninja on a WAN connection
-- Always try with the `free desktop
- version <https://github.com/pliablepixels/zmNinja/releases>`__ first.
- Enable debug view by hitting Ctrl/Cmd+Shift+D and you can see debug
- logs in the console view. I can't emphasize enough how useful this
- is.
-- Your ``cgi-bin`` setting in zmNinja is incorrect. Please run the
- wizard. There are times when the wizard can fail. In those cases,
- open up ZM web console, go to view the monitor and do an "Inspect
- Source" in the browser. That will show you the cgi-bin link that you
- can use in zmNinja.
-
-For example:
-
-In the above case my zmNinja cgi-bin setting is
-``https://myserver:myport/zm/cgi-bin``
-
-- You are using Basic Authentication. See
- `here <#i-can-t-see-streams-i-use-basic-auth>`__
-- You have 'multi-server' configuration enabled and you have done it
- wrong. Go to ZM Web Console->Options->Servers - if you see any
- entries there and you don't know what multi-server is, or you don't
- use it, please disable multi-server
-- When trying to view live images, look at your *webserver* error logs
- - example Apache's ``error.log`` - see any image/jpg errors? That
- means you are missing libraries
-- You have set up a multi-server install of ZM without knowing you did
- See `here <#i-can-t-see-streams-multi-server-is-enabled>`__
-- Look at zmNinja, ZoneMinder and web server error logs at the time of
- error - one of them should give more clues. Please send me *all* the
- logs if you ask for help
-- Read the set of notes below
-
-General note
-~~~~~~~~~~~~
-
-To debug streaming notes, always try with the free desktop version
-first. When trying to stream simultaneously look at the debug logs of
-zmNinja (``Ctrl/Cmd+Alt+D`` in desktop build, console and/or network
-tab) and your webserver error logs.
-
-I can't see stream: And I can't see streams in ZoneMinder webconsole either
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Check if streaming works in the web interface. If it does not work,
-zmNinja won't work either. Fix ZM first
-
-I can't see streams: I use basic auth
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Starting Chrome v59, the browser changed basic credential behavior. The
-issue report is
-`here <https://bugs.chromium.org/p/chromium/issues/detail?id=435547#c33>`__.
-Here is the core issue: zmNinja constructs URLs as
-``http://user:password@server`` when you have basic auth (and starting
-v1.3 uses the ``Authorization`` header). However, since images are
-rendered using ``<img src>`` there is no option but to put in a
-``user:password`` in the URL. Chrome allows this format for direct
-requests (such as API calls) but will strip out the ``user:password``
-part for *embedded* requests (like ``<img src="">`` tags inside a page).
-So what happens is your APIs work, but you won't see images. There is a
-reason why Chrome does this - its bad to pass on a user :password in a
-URL as its clear text (even if you are on HTTPS, as its in the URL). As
-I said earlier, The *right* way to do this is to replace the
-``user:pass`` with an ``Authorization`` header but there is no way to do
-that with images that are rendered with ``<img src>`` (There are several
-plugins that attempt to do this, but don't work with streaming MJPEG
-images). Bottom line, this is a problem for apps like zmNinja and it
-affects you.
-
-How this affects you: \* If you are using HTTP Basic Authentication
-
-Then your images won't show.
-
-Possible Workarounds: \* Configure your web server to skip basic
-authentication for ``nph-zms`` URLs \* If you are using a ReverseProxy,
-you can insert the authorization header inside the apache proxy \*
-Disable HTTP Basic auth for now \* Downgrade Chrome
-
-Skipping auth for ``nph-zms`` URLs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Here is what I've used that works with basic-auth. This requires a basic
-auth portal login and once logged in allows skipping of image URLs (the
-idea comes from `Adam Outler <https://github.com/adamoutler>`__ - he
-uses a different approach using reverse proxies, which I link to later)
-
-.. code:: apache
-
- # this configuration assumes your server portal is server:port/zm
- # and cgi-path is /zm/cgi-bin. Please change it to your specific environment
- # Also requires Apache 2.4 or above
-
- <Location />
- SetEnvIf Request_URI ^/zm/cgi-bin/ noauth=1
- SetEnvIf Request_URI ^/zm/index.php noauth=1
- AuthType Basic
- AuthName "Auth Required"
- AuthUserFile "/etc/apache2/.htpasswd"
- <RequireAny>
- Require valid-user
- Require env noauth
- </RequireAny>
- </Location>
-
-Authorization with a ReverseProxy
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Simple starter
-''''''''''''''
-
-**STEP 1**: Enable "Append basic auth tokens in images" option in
-zmNinja->Developer Settings and save. What this does is that image URLs
-will append a "basicauth" token parameter with your basic authentication
-credentials. This token can then be parsed by Apache and inserted as a
-valid Authorization header. Don't enable this option if you are not
-using HTTPS because the request-URI will be transmitted without
-encryption and it will contain your basic auth credentials, encoded in
-base64, which is trivial to decode.
-
-**STEP 2 (Apache)**: Use mod\_rewrite and mod\_header to convert the
-token into an authorization in your Apache config. Add this to the
-relevant section (``VirtualHost`` or others)
-
-.. code:: apache
-
- RewriteEngine on
- RewriteCond %{QUERY_STRING} (?:^|&)basicauth=([^&]+)
- RewriteRule (.*) - [E=QS_TOKEN:%1]
- RequestHeader set Authorization "Basic %{QS_TOKEN}e" env=QS_TOKEN
-
-**STEP 2 (Nginx)**: Thanks to user [@ysammy](https://github.com/ysammy)
-
-.. code:: nginx
-
- location /zm/cgi-bin/nph-zms {
- proxy_pass http://<IP>:<PORT>/zm/cgi-bin/nph-zms;
- proxy_set_header Authorization "Basic $arg_basicauth";
- }
-
-A more complete and more secure option
-''''''''''''''''''''''''''''''''''''''
-
-User `Adam Outler <https://github.com/adamoutler>`__ has contributed the
-following process: see
-`HERE <https://github.com/pliablepixels/zmNinja/wiki/Apache-Proxy-Authorization-with-HTTPS,-Basic-Auth,-and-ProxyPass>`__.
-Adam also has this to say about why proxies should be recommended for
-HTTPS enabled ZoneMinder instances:
-
- A proxy server should be on the list of recommendations for
- Zoneminder. HTTPS requires processing to encrypt and decrypt. This
- takes processor cycles away from Zoneminder's recording. Since HTTPS
- is now basically a requirement, there should be a page dedicated to
- proxy, https, auth, and their nuances. I just picked up 2-4K cameras
- and processing suddenly became an issue :).
-
-I can't see streams: Multi-server is enabled
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The chances are very high that you have enabled ZoneMinder's
-`Multi-Server <http://zoneminder.readthedocs.io/en/stable/installationguide/multiserver.html>`__
-option and you entered something like ``localhost`` in server settings.
-**DON'T. You can't enter localhost**. If you are not using multi-server,
-remove any server settings. If you are using multi-server, you need to
-put in a valid server IP or hostname, not ``localhost``. BTW, if you did
-put in ``localhost`` you will note that your ZM web console also won't
-work if you try to launch your browser on a different machine from where
-ZM is running.
-
-I can't see streams: you have cgi-bin issues
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Try to use the wizard. If it fails,
-- Go to zmNinja settings and fix your cgi-bin path. the automatic path
- that is filled in won't work. Here is a hint, go to
- zoneminder->options->paths and check the value of the cgi-bin path -
- your zmNinja path will be "base path of your server" + cgi-bin path.
-
-zmNinja montage does not seem smooth - feeds seem a little delayed compared to ZM console
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-zmNinja does not use ``nph-zms`` to display live feeds in montage. This
-is because Chrome only allows a maximum of 6 connections per (sub)domain
-which means you can't have more than 6 active TCP connections to a
-single domain at the same time. This also means that you can't display
-more than 6 monitors together. To avoid this, I use the zoneminder
-"snapshot" feature that displays a still from the monitor and then
-refresh it every X seconds (by default X=2 unless you switch to low
-bandwidth mode. You can change X in developer settings)
-
-That being said, starting v1.3.0 of zmNinja onwards, I now support
-multi-port (available in ZM 1.32 onwards) that lets you stream as many
-monitors as you need. Read
-`this <https://medium.com/zmninja/multi-port-storage-areas-and-more-d5836a336c93>`__
-post for more details.
-
-Event images/streaming related
-------------------------------
-
-General note
-~~~~~~~~~~~~
-
-To debug streaming notes, always try with the free desktop version
-first. When trying to stream simultaneously look at the debug logs of
-zmNinja (``Ctrl/Cmd+Alt+D`` in desktop build, console and/or network
-tab) and your webserver error logs.
-
-Also, Starting ZM 1.32 and beyond, please enable ``AUTH_HASH_LOGINS`` as
-well as set ``AUTH_RELAY`` to "hashed"
-
-Event stream viewing does not work
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- Look at apache error logs - it often gives you hints
-
-Video Not Playable
-~~~~~~~~~~~~~~~~~~
-
-- Mobile devices have more restrictions to video playback than
- destkops. Make sure you first check if the video is playable in
- Chrome using the same phone you are using zmNinja on
-- There could be other reasons due to which the video is not playable:
-- There is an encoding issue in the video generated
-- The video resolution is too big (see `this
- thread <https://forums.zoneminder.com/viewtopic.php?f=33&p=108788#p108774>`__)
-- In general, to get to the root of what is going on, you'll need
- device logs using ADB (see
- `this <https://forums.zoneminder.com/viewtopic.php?f=33&p=108788#p108753>`__)
-
-Event thumbnails/images don't show
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Starting zmNinja 1.3.26 and beyond, if you are using OPT\_AUTH you need
-to enable AUTH\_HASH\_LOGINS or you won't be able to see image snapshots
-and thumbnails. Only applicable for mobiles.
-
-When viewing individual frames, some event frames show, but some don't
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This can happen if you are using Video Storage (Passthru or X264 Encode)
-and have disabled frame (JPEG) storage completely. What happens is
-ZoneMinder uses ``ffmpeg`` to extract frames from timestamps and
-sometimes it is unable to extract a frame for a specific timestamp,
-resulting in this issue. If you see HTTP 404 messages for some frames,
-but the video plays fine, then this is why.
-
-zmNinja montage screen shows all my monitors, but in Event Montage, I only see 5?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You are likely using Chrome (Android or desktop version). Chrome allows
-a total of 6 simultaneous connections to a domain/sub-domain. ZoneMinder
-uses a long running TCP stream for each monitor display (keeps sending
-jpeg images). This means you can only display 6 streams at a time in
-Chrome. I work around this problem by *not* asking for live streams in
-montages - I ask for 'snapshots' and keep refreshing snapshots every 2
-seconds. This makes montage display non-realtime, but scales to as many
-monitors you have. In Event Montage however, I am using zms to display
-long running streams - trying to do snapshots in event montage is a lot
-of work and I need to keep track of when the event ends, move to next
-image etc. I limit this to 5 because I need 1 for control messages.
-
-Other misc. issues
-------------------
-
-I suddently see an error message saying I need to enable ZM\_AUTH\_HASH\_LOGINS. This wasn't there before
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Yes. Starting 1.3.027 onwards, due to a new UI web rendering engine that
-enforces CORS, I've had to change my strategy on how network calls are
-made. Briefly, on mobile devices, I now use a native HTTP stack and not
-the browser HTTP stack. However, images are rendered using the browser
-HTTP stack which causes this message. In short, you need to enable it,
-and restart ZM.
-
-zmNinja 1.2.515 and beyond says "Need API Upgrade" for the 24hr review feature. What does that mean?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You need to update an API file in Zoneminder server. ZoneMinder folks
-haven't yet (as of Apr 2018) made a release with that API change. To do
-it manually,simply replace your ``EventsController.php`` (typically in
-``/usr/share/zoneminder/www/api/app/Controller``) with `this
-one <https://raw.githubusercontent.com/ZoneMinder/zoneminder/85b7baa13178a838fe9fae94405c99fe7d2c669c/web/api/app/Controller/EventsController.php>`__.
-
-I upgraded ZoneMinder to 1.30.2 or above and zmNinja stopped working!
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-ZoneMinder changed API packaging with ZM 1.30.2 and above. You will have
-to read your distro notes on how to **properly** update. Read
-`this <https://forums.zoneminder.com/viewtopic.php?f=36&t=26002&start=30&hilit=api+broken>`__
-thread. Before you think zmNinja is the problem, make sure your APIs
-are working (see :doc:`validating-api`)
-
-Summary of reasons why zmNinja might have stopped working: - You did not
-check if your APIs are working after the upgrade - You did not upgrade
-properly (just updating the ZM package without following distro
-instructions with ZM is not sufficient) - You are missing some key
-CakePHP modules, likely ``php5-apc`` which would have been installed if
-you read all the package instructions. You can install it manually - You
-might need to restart your system after upgrading (properly)
-
-I am running ZM on a custom port. zmNinja is unable to reach my ZoneMinder server but I tried on a regular browser (Firefox/Opera/IE) and it I can reach it
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-zmNinja on Android and Desktops uses an embedded chrome browser. Chrome
-marks certain ports as "unsafe" and won't allow connections to go out.
-The list of ports to avoid are
-`here <http://tech-stuff.org/which-ports-are-considered-unsafe-in-browsers/>`__
-
-The Montage screen is causing issues with my ZM server - I get connection timeout issues or MySQL connection problems
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- zmNinja uses a different approach to display montage than ZoneMinder.
- In zmNinja montage screen, I display a snapshot of each monitor and
- refresh it every few seconds. This results in many short TCP
- connections constantly being opened and closed. The reason I have to
- do this is Chrome only allows 6 connections to a domain, which means
- if I don't keep terminating TCP connections, I won't be able to show
- more than 6 monitors. Each time I open a new TCP connection for a
- snapshot, the ZM backend invokes mySQL to authenticate the request.
- You will need to increase mySQL ``max_connections`` in ``my.cnf`` if
- you are facing time\_wait/timeout issues.
-
-The app works great - except it doesn't work on ONE Android phone - works in others!
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-zmNinja uses an embedded chrome browser in its app. If you have safe
-browsing enabled, it may affect zmNinja. However, if you are facing this
-problem, its likely you can't access ZM from a mobile web browser
-either. The problem that might be occurring is that zmNinja is trying to
-reach your ZM server and your settings prohibit it from reaching ZM, so
-it fails. See
-`this <https://forums.zoneminder.com/viewtopic.php?f=33&t=25946>`__
-discussion
-
-APIs are not working ! ZM console works fine.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:doc:`validating-api`
-
-I'm using mocord/record and I don't see events without alarms
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Tap on the "..." menu option and toggle "Show all events". By default,
-it shows events with at least one alarm frame
-
-Taking snapshots or downloading videos don't work in Android
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you are unable to download/save, look at your logs. If you see
-something like
-``"exception":"java.security.cert.CertPathValidatorException: Trust anchor for certification path not found."``
-, chances are you are using self-signed certs. You need to install the
-certificate on your phone. Installing is as easy as emailing yourself
-the ".crt" file and tapping on it from your device to install it. In
-general, both Apple and Google have been incrementally tightening rules
-for self signed certificates - they generally discourage usage of such
-certs and over time both Chrome (Android) and WkWebView (iOS) have added
-new restrictions/checks which affects usage.
-
-Pan/Tilt/Zoom doesn't work
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Tilt/Zoom/Presets support has not been added. But for this to work, PTZ
-needs to work in ZM first. Once it works in ZM, try it in ZMNinja. Also
-note that you may need to disable CSRF in your Options in ZoneMinder -
-it seems to cause all sorts of issues.
-
-What is this Event Server?
---------------------------
-
-The Event Server is a contribution I made to ZoneMinder that adds a
-daemon to the existing list. It listens for new events using shared
-memory (aka very efficient) and then sends notifications of events to
-listeners (you can write your own app that listen as well as use
-zmNinja). This is a chapter on its own, and I have a dedicated
-page/project for this
-`here <https://github.com/pliablepixels/zmeventserver>`__. I'd encourage
-you to install and use it - its very nice.
-
-It looks like you allow me to modify the frequency of push notifications. Very cool - will it send me all events that I missed if I make the frequency of a monitor event push to say, 600 seconds?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Nope. It only sends the latest events. What it does is before sending
-push notifications, it checks if the last time a push was sent for this
-monitor is < the time you specified. If it is, it does not send. That's
-all.
-
-Is zmNinja free?
-----------------
-
-The source code is free, grab it, compile it, use it. The desktop ports
-are free as of today. I may charge for it some day. The mobile ports are
-in Appstore/Playstore for a fee.
-
-Who are the developers behind this?
------------------------------------
-
-Me.
-
-The code needs improvement
---------------------------
-
-You are being nice. I know the code is terrible. I'm not a coder by
-profession. This was my first project to learn how to write a mobile
-app. So the app evolved from no knowledge to some knowledge. It
-comprises of terrible to passable to reasonable code. There is a reason
-why my `profile <https://github.com/pliablepixels>`__ says what it says.
-But hey, if you can improve it, please PR!
-
-Is zmNinja an official ZoneMinder product?
-------------------------------------------
-
-No. But the ZM developers are amazing people who have been very helpful.
-
-I want to donate money
-----------------------
-
-You could either `donate to to
-Zoneminder <https://www.bountysource.com/teams/zoneminder>`__ or `donate
-to zmNinja <https://salt.bountysource.com/teams/zmninja>`__. Donations
-to ZoneMinder don't contribute to zmNinja, but the ZoneMinder devs will
-benefit from it, which is fine too.
-
-How does zmNinja use my personal data?
---------------------------------------
-
-Please read
-`this <https://medium.com/zmninja/zmninja-privacy-and-your-data-5489a5974baf>`__
-
-I want to donate time/expertise/code
-------------------------------------
-
-Great. Make sure you read the
-`license <https://github.com/pliablepixels/zmNinja/blob/master/LICENSE>`__
-, read the `contributing
-guidelines <https://github.com/pliablepixels/zmNinja/blob/master/CONTRIBUTING.md>`__
-and if it works for you, happy to see what you'd like to do.
diff --git a/docs/docgen/html/_sources/guides/contributing-language.rst.txt b/docs/docgen/html/_sources/guides/contributing-language.rst.txt
deleted file mode 100644
index 68f11fd2..00000000
--- a/docs/docgen/html/_sources/guides/contributing-language.rst.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Contributing a new language
----------------------------
-
-If you are familiar with using git, I'd prefer if you follow the Pull
-Request process
-`here <https://github.com/pliablepixels/zmNinja/blob/master/CONTRIBUTING.md#steps-for-code-contribution>`__.
-
-Adding a new language
-^^^^^^^^^^^^^^^^^^^^^
-
-- Languages translations are available
- `here <https://github.com/pliablepixels/zmNinja/tree/master/www/lang>`__
-- To contribute a new language, add a new ``locale-xx.json`` (where
- ``xx`` is your language code).
-- Ideally, you should also provide a language translation for the
- zmNinja help file inside
- `lang/help <https://github.com/pliablepixels/zmNinja/tree/master/www/lang/help>`__
-
-The best way is to simply look at an existing language translation and
-follow the same model for yours. If any language translation keywords
-are missed, it will fallback to English.
-
-Main Language file
-^^^^^^^^^^^^^^^^^^
-
-- Make sure there is no comma after the last element
-- Comments are not allowed
-- Make sure you don't add ellipsis "..." anywhere, they are added to
- messages in code when needed
-- After you complete the translation file, do the following:
-
-(replace ``-it`` with the language you are working on)
-
-``python ./checklang.py -f locale-it.json -b``
-
-This validates your JSON file, makes sure all keys are in sync with -en
-and if valid, creates pretty-locale-it.json. If you are sure it looks
-good,
-
-``python ./checklang.py -f locale-it.json -b -o``
-
-This validates your JSON file,makes sure all keys are in sync with -en
-and if valid, OVERWRITES your local file with a pretty formatted
-version, which is what you should PR
-
-Translating Help language file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Located inside lang/help
-- Please be careful not to mess up the html tags, please only focus on
- text translation
-
-How to recognize a new language:
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-(This is only for zmNinja developers. Not relevant for language
-translators)
-
-- Modify languages array in NVR.js (look for ``var languages``)
-- Register language glob code in app.js - make sure its added to array list and mapping (look for ``registerAvailableLanguageKeys``)
diff --git a/docs/docgen/html/_sources/guides/desktop.rst.txt b/docs/docgen/html/_sources/guides/desktop.rst.txt
deleted file mode 100644
index 0afcdacf..00000000
--- a/docs/docgen/html/_sources/guides/desktop.rst.txt
+++ /dev/null
@@ -1,113 +0,0 @@
-Desktop port tips
-=================
-
-Scope
------
-
-This page is dedicated to the Desktop version of zmNinja and tips &
-tricks
-
-Command Line parameters
------------------------
-
-The following command line parameters are supported:
-
-::
-
- --path=<dir> - starts zmNinja and stores user profile information to that directory.
- This allows you to switch between different user settings.
-
- --fs - starts zmNinja in full screen mode
-
-Multiple instances
-------------------
-
-It is actually possible to launch multiple instances of the same desktop
-app from command line. This allows you to watch different servers at the
-same time as well as use multiple monitors. I strongly recommend you use
-unique ``--path`` arguments with each instance because otherwise one
-instance will conflict with another.
-
-So lets say you want to run 2 copies of zmNinja at the same time:
-
-::
-
- mkdir -p /path/to/instance1
- mkdir -p /path/to/instance2
-
-And then:
-
-::
-
- # for linux
- zmninjapro-1.3.22-x86_64.AppImage --path=/path/to/instance1
- zmninjapro-1.3.22-x86_64.AppImage --path=/path/to/instance2
-
- #for OSX. Note the -n is critical to launch a new instance
- open -n ./zmninjapro.app --args --path=/path/to/instance1 &
- open -n ./zmninjapro.app --args --path=/path/to/instance2 &
-
-Hotkeys
--------
-
-The following hotkeys are supported while the app is running:
-
-::
-
- [Cmd/Ctrl] + L -> Lock app (if pin code is being used)
- [Cmd/Ctrl] + Shift + F -> toggle between full screen and windowed mode
- [Cmd/Ctrl] + Shift + D -> opens the debug window.
- Super useful to see what is going on,
- especially when things don't work
-
-Keyboard bindings
------------------
-
-**Live Monitor View (single view, not montage):**
-
-::
-
- Arrow Left -> move to previous monitor
- Arrow Right -> move to next monitor
- Esc -> remove live view
- P -> toggle PTZ
-
-**PTZ Operations to move (PTZ should be toggled to on first):**
-
-::
-
- Q W E -> UpLeft, Up, UpRight
- A S D -> Left, Home,Right
- Z X C -> DownLeft, Down, DownRight
-
-**Event Footage View:**
-
-::
-
- Arrow Left -> move to previous event
- Arrow Right -> move to next event
- Enter -> play the event if in snapshot mode (shows red play button)
- Esc -> remove event footage view
-
-**Timeline:**
-
-::
-
- Arrow Up -> Zoom In
- Arrow Down -> Zoom Out
- Arrow Left -> Pan Left
- Arrow Right -> Pan Right
- Esc -> Fit timeline back to view (reset)
- A -> Previous Day
- D -> Next Day
-
-Desktop data storage locations
-------------------------------
-
-User data is typically stored in the following locations:
-- ``%APPDATA%/zmNinjaDesktop`` for Windows,
-- ``$XDG_CONFIG_HOME/zmNinjaDesktop`` or ``~/.config/zmNinjaDesktop`` for Linux,
-- ``~/Library/Application Support/zmNinjaDesktop`` for OSX
-
-To completely remove the app, you may want to delete both the app
-bundle/binary and these locations as applicable on your system
diff --git a/docs/docgen/html/_sources/guides/source.rst.txt b/docs/docgen/html/_sources/guides/source.rst.txt
deleted file mode 100644
index c1956657..00000000
--- a/docs/docgen/html/_sources/guides/source.rst.txt
+++ /dev/null
@@ -1,236 +0,0 @@
-Building from Source
-`````````````````````
-
-**NOTE** If you want to run it on your desktop, you can directly
-download desktop binaries
-`here <https://github.com/pliablepixels/releases>`__
-and if you want it for Android/iOS you can get from the play/appstore.
-This is only for those who *want* to run from source.
-
- Note: If you are building from source, you are mostly on your own. I
- have very limited time to debug environment differences/package
- differences between what I have and what you may have. I'm not a
- nodejs/grunt etc expert and stuff seems to change all the time.
-
-Version note: The code is compiled using the following versions of
-tools. **If you are using newer versions of ionic the code may not
-compile - I don't have the time to upgrade yet. Finally, if you choose
-to go the source route, I expect you to spend a lot of time yourself
-debugging first before you create an issue. Even if you do create an
-issue, I have very limited bandwidth to debug source compilation issues
-for you.** Thanks.
-
-Output of ``ionic info``
-
-::
-
- Ionic:
-
- ionic (Ionic CLI) : 4.5.0 (/usr/local/lib/node_modules/ionic)
- Ionic Framework : ionic1 1.3.5
- @ionic/v1-toolkit : 1.0.19
-
- Cordova:
-
- cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
- Cordova Platforms : android 7.1.4, ios 5.0.0
- Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.0,
- (and 30 other plugins)
-
- System:
-
- Android SDK Tools : 26.1.1 (/Users/pp/Library/Android/sdk/)
- ios-deploy : 2.0.0
- ios-sim : 7.0.0
- NodeJS : v8.11.2 (/usr/local/bin/node)
- npm : 5.6.0
- OS : macOS Mojave
- Xcode : Xcode 10.1 Build version 10B61
-
-Install Dependencies - needed for all platforms
------------------------------------------------
-
-Install NodeJS
-~~~~~~~~~~~~~~
-
-Install NodeJS from `here <https://nodejs.org/en/download/>`__. As of
-Dec 2018, I'm using Node ``v8.11.2``. I use
-`n <https://github.com/tj/n>`__ to manage node versions and switch
-between them.
-
-Install cordova, ionic, and bower
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. code:: bash
-
- npm install -g cordova ionic bower
- npm install @ionic/v1-toolkit --save-dev
-
-And some more:
-
-.. code:: bash
-
- npm install -g gulp
- npm install node-sass
- npm install async
- npm install jshint
-
-(Note you may need to do ``sudo`` depending on how your system is set
-up. It's `better you
-don't <https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/>`__,
-but if you must, well, you must)
-
-If you get a newer version, you should adjust your cordova version to
-the mentioned version above in order to be able to successfully compile
-zmNinja. To change the version you can follow these instructions:
-`change cordova
-version <https://iphonedevlog.wordpress.com/2014/06/25/updating-and-reverting-to-different-cordova-phonegap-versions>`__
-
-Download zmNinja
-----------------
-
-.. code:: bash
-
- git clone --depth 1 https://github.com/pliablepixels/zmNinja.git
-
-Configure build configure zmNinja and get all required plugins
---------------------------------------------------------------
-
-.. code:: bash
-
-
- cd zmNinja
- npm install
- bower install
- ionic cordova platform add android (or ios)
- cordova prepare
-
-Making an iOS build
--------------------
-
-Note: You need to be doing this on a mac, with Xcode and the SDK
-installed. You also need to have your developer certificates/etc. (I am
-not going to detail this out - there are many internet resources on
-this)
-
-(Harder) If you need picture notification support in push
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-As of Mar 2019, cordova-ios does not support multiple targets, nor does
-it support automatic building of notification extensions. So there is manual work to be done:
-
-- Open up ``platforms/ios/zmNinja.xcworkspace`` in XCode
-- Go to ``File->New->Target->Notification Service Extension``, select Objective C
-- In the "Product Name" put in ``zmNinjaNotification`` (your BundleID should now read ``com.pliablepixels.zmninja-pro.zmNinjaNotification``)
-- Say "Yes" to "Activate zmNinjaNotification scheme?" popup
-- Now go to zmNinjaNotification target and make version and build same as zmNinja
-- Now in XCode Targets, select ``zmNinjaNotification``, and make sure you select a Team and make sure Deployment Target is 10 or above
-- Change Deployment target to 10.1 (same as zmNinja target)
-- ```cp www/external/NotificationService.m platforms/ios/zmNinjaNotication/``
-- ``cd platforms/ios/``
-- ``pod install``
-
-You can now do `build_ios.sh`. However, after you build, you will have to go back to XCode
-after the build to make the following changes:
-
-1. Sync notification version with app version
-2. Change notification bundle ID back to com.pliablepixels.zmninja-pro.zmNinjaNotification (cordova removes the last word)
-
-
-(Easier) If you don't need picture notification support in push
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are a few steps you need to take to get the iOS build working for
-the first time. If you don't do this, you may get a compilation error
-that says ``ld: library not found for -lGoogleToolboxForMac``
-
-::
-
- cd platforms/ios
- pod install
-
-This does not produce an iOS ready ipa. What you need to do then is to
-open ``platforms/ios/zmNinja.xcworkspace`` in Xcode, and run.
-
-To compile a debug build for iOS from command line, from zmNinja project
-root: First edit ``./build-auto.json`` and change the
-``developmentTeam`` id to yours. Then:
-
-.. code:: bash
-
- ./build_ios.sh
-
-To compile using XCode, open ``platforms/ios/zmNinja.xcworkspace`` - You
-need to use "Legacy Build" system if you are on XCode 10+. You can
-change this in XCode ``File->Workspace Settings`` and then build usual.
-Also switch to the Capabilities tab and make sure "Remote Notifications"
-is on in Background Modes and in iCloud section, Key-Value storage is
-enabled. If you see a "Fix issue" there, clicking on that button
-resolves everything.
-
-Making an Android build
------------------------
-
-Note that you need the `Android
-SDK <http://developer.android.com/sdk/index.html>`__ installed and
-configured properly for this to work.
-
-From the zmNinja project root:
-
-.. code:: bash
-
- ./build_android.sh --debug (or --release)
-
-If this complains of missing SDKs, you need to install the SDK version
-it requests This should produce an APK file. To install it on your phone
-over adb, you'd do something like
-
-.. code:: bash
-
- adb install -r debug_files/android-debug.apk #if you did --debug
- or,
- adb install -r release_files/zmNinja.apk #if you did --release
-
-Making a desktop build
-----------------------
-
-I use `electron <https://electron.atom.io>`__ to build the desktop app.
-
-For versions 1.3.018 and beyond
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-I've migrated to using
-`electron-builder <https://github.com/electron-userland/electron-builder>`__
-to automate the build process better.
-
-Make sure you have all the dependencies
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Typically, just running
-
-::
-
- npm install
- bower install
-
-Should have installed everything. Validate by checking you have
-``electron`` installed by invoking it on the command line
-
-You now have the following options:
-
-::
-
- npm run dist-all # builds linux, mac and windows packages
- npm run dist-mac # only builds mac packages
- npm run dist-lin # only builds linux packages (32bit, 64bit, arm)
- npm run dist-win # only builds win packages (32bit, 64bit)
-
-Your packages will be created in the ``dist`` folder
-
-
-Troubleshooting
----------------
-
-Lots of things can go wrong.
-
-* Please make sure you don't post issues about why your own build is not working - please figure it out
-* Look carefully at error messages
diff --git a/docs/docgen/html/_sources/guides/validating-api.rst.txt b/docs/docgen/html/_sources/guides/validating-api.rst.txt
deleted file mode 100644
index a2acdfae..00000000
--- a/docs/docgen/html/_sources/guides/validating-api.rst.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-Validating APIs
-````````````````
-
-Please make sure you go through this before you wonder why zmNinja is not working.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Assumption: Your ZM server is accessible at ``http://server/zm`` ->
- replace this with your actual path
-
-Make sure ZM APIs are working:
-''''''''''''''''''''''''''''''
-
-(Note - nginx users, if you are facing API issues, please see if `this
-page <https://github.com/pliablepixels/zmNinja/wiki/How-to-configure-APIs-with-nginx>`__
-helps)
-
-- Step 1: Open up a browser
-- Step 2: Log into ZM
-- Step 3: Open another tab in the same browser (**IMPORTANT**: Has to
- be from the same browser you logged into ZM)
-- Step 4: Type in ``http://server/zm/api/host/getVersion.json`` --> you
- should see a response like:
-
- .. code:: json
-
- {
- "version": "1.30.0",
- "apiversion": "1.0"
- }
-
- version/apiversion may be different. If you don't see such a
- response, your APIs are **not** working
-
-- Step 5:make sure you can see monitors and events:
-
-Type in ``http://server/zm/api/monitors.json`` --> you should see a
-response like:
-
-.. code:: jsonld
-
- {
- "monitors": [
- {
- "Monitor": {
- /*lots of additional details*/
- },
- /*more monitor objects if you have more than one*/
- }]
- }
-
-- Step 6: (If you find your APIs show ok, but zmNinja has issues)
-
- - Open a browser, log into ZM
- - Open a new tab, enter ``http://server/zm/api/host/getVersion.json``
- - Now, right click and do a ``View Source`` in your browser (different
- browsers may have different names for it). This brings up a full
- source code view of the page. Do you ONLY see the JSON output or do
- you see gobs of HTML on top like ``<pre class=`` and lots of cake
- related messages? If you do, you need to fix it.
-
-if you find the page empty, your APIs/permissions have a problem. Please
-post in the ZM forums (**please DON'T** contact me first as its not a
-zmNinja bug)
-
-Type in ``http://server/zm/api/events.json`` --> you should see a
-response like: (this list may be an empty set if you don't have events
-but you will still see the ``{"events":[]}`` text - if you find the page
-empty, your APIs have a problem. Please post in the ZM forums (please
-**DON'T** contact me first, as its not a zmNinja bug)
-
-.. code:: jsonld
-
- {"events":[{"Event":{ /* many more details */ }}]}
-
-*Top reasons why monitors and events API returns blank while getVersion
-works:* \* You don't have monitor/event view permissions allocated to
-the user \* You have an invalid camera definition (happens sometimes
-when you remove and re-add cameras) \* If you are using non UTF8
-characters in your monitor names/zone names this can cause issues. Edit
-``/usr/share/zoneminder/www/api/app/Config/database.php`` (assuming ZM
-is in /usr/share) and make sure ``'encoding' => 'utf8'`` is
-*uncommented* (remove ``//``) around line 74. I've submitted a
-`patch <https://github.com/ZoneMinder/ZoneMinder/pull/1635/commits/92d7cad5f154359a5b249d7a63fb5034f7d1b51a>`__
-but till its merged, you might have to do it manually.
-
-zmNinja API notes:
-^^^^^^^^^^^^^^^^^^
-
-- Please make sure the user credentials you use has:
-- view or edit access to monitors
-- view or edit access to streams
-- view or edit access to system
-
-- If you are accessing zmNinja remotely, make sure you first access ZM
- remotely from your desktop browser, ensure it works and then use the
- same DNS/IP for zmNinja
diff --git a/docs/docgen/html/_sources/index.rst.txt b/docs/docgen/html/_sources/index.rst.txt
deleted file mode 100644
index ecea1004..00000000
--- a/docs/docgen/html/_sources/index.rst.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-.. zmNinja documentation master file, created by
- sphinx-quickstart on Fri Mar 15 08:38:52 2019.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to zmNinja's documentation!
-===================================
-
-.. toctree::
- :hidden:
-
- guides/FAQ
- guides/validating-api
- guides/desktop
- guides/contributing-language
- guides/source
- Event Notification Server <http://pliablepixels.github.io/zmeventnotification/docgen/html/index.html>
-
-`Github Repository <https://github.com/pliablepixels/zmNinja>`__
-
-:doc:`guides/FAQ`
- A detailed FAQ for zmNinja, including common issues related to installation, streaming and troubleshooting
-:doc:`guides/validating-api`
- How to make sure your ZoneMinder installation has working/usable APIs
-:doc:`guides/desktop`
- Various tips/tricks/shortcuts for the desktop port of zmNinja
-:doc:`guides/contributing-language`
- Would you like to see zmNinja in your own language? It's easy. Here's how to go about contributing a new language for zmNinja
-:doc:`guides/source`
- For the brave souls who want to build from source, your questions answered
-`Event Notification Server <http://pliablepixels.github.io/zmeventnotification/docgen/html/index.html>`__
- Documentation for the Machine Learning Event Notification server
-
-
-