From a2676feeeb759984b608ee9f41c828a54a2f2ab5 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 20 Dec 2025 22:35:22 +0100 Subject: [PATCH 1/3] Add more details to plugin installation doc (#11053) * change screenshot for plugin install to PUI * Correct location of gunicorn config in docs * Add more details to plugin installation doc * remove unused file --- .../assets/images/plugin/plugin_install_git.png | Bin 0 -> 12054 bytes .../assets/images/plugin/plugin_install_txt.png | Bin 0 -> 4001 bytes docs/docs/plugins/install.md | 10 +++++++++- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 docs/docs/assets/images/plugin/plugin_install_git.png create mode 100644 docs/docs/assets/images/plugin/plugin_install_txt.png diff --git a/docs/docs/assets/images/plugin/plugin_install_git.png b/docs/docs/assets/images/plugin/plugin_install_git.png new file mode 100644 index 0000000000000000000000000000000000000000..fe66c9a19c7dc8f93f7e995198cf5da15a97489c GIT binary patch literal 12054 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/plugin/plugin_install_txt.png b/docs/docs/assets/images/plugin/plugin_install_txt.png new file mode 100644 index 0000000000000000000000000000000000000000..306f85eb49c83b36cfc2a029e176bd76563cffbb GIT binary patch literal 4001 zcmY*c2T&8t) zy~-Nx7zxRZFeeoin1+f9mxq_Ty_2gQ2?;0>l_;m)4Pyv@u3yN_2oQ~uvMqUQ#mwkg zZU9maf5BI~X?1{CaKtARG)mpYl2ZgTVQ2(Kn`IjBzFnY=YFQ{)=YC8`V=(>qbm2gL zG+@nR9u+cPA~doYb0fnoa|2>NxN2B9&eug(+AGW@I)v6LOxm+}b#i-;C@@%axl3$1 zpJ?p~34s9N5l;8q>Bd}VZmpqg5>sqbPP6>F3T{PnHevlPdz;p)zlcIbKV&~;iY~OF z;JZJpS)}?*2dF3h@gTgsk9Q3`YFgN9iaKD9I6NN|nJ!gL_`;o<@Rp2RJXtUFJ!nUU zhY645IN7Id`NPn};FZ$ZUlqbD){o`9qzxLI;?>si*Z3(lPF$4Y%vW?|cAUDucJa+K z^j8=p+Q8a1yxvagTD3a0%MDn-d7 zO(zEgvKayRp0OJ0Jb32E!6(BT_Uf5InuI`@f}$-fK*JatsApFb;ghb%s-*LmQP{HRqNP*PQfl_QxF;IaSCjK-}UWZtbP-CQuI|5d?hAsxBYG<0A_p)}0bYNOYHD82NX*|Bhe*YHwJ>3_6vLAgxFZrKs9 zt`0&p>A47|bB1YwQhg0??>vYn3v*Bc!p@#UAhsoB-2c}OlTPb~sU;N(rBaR4(;z*> zKgR^GtG%-+Q3-rSLut35?0iLWRqgVp*iORc4)t`)#MoEa%`uH2b4X9>pCt2NnsLOI z#xjo%+NhYLK%@Oe{BDokOhn!?-e=l>8F7N9_`-zux*XwsLo^nU{E!D4uJ6nz>}}=w zmVSz~(JMGS_Wwpcurud_dbz!LBR`16NPO`Dpf+YYvdrv*VOF^$Dz`O2D&sx)o0l`^ z{-mey>P0LRms`jBnP7EYWWYe!Sp||bB%wZMq>p4_OH^@51{5gQvqMpdmx@9EezTcT z3f^M>IUkxgDrqCgQ0jT{DeRA5O%g9-OEB12+crR)_7p~^p#Brjlxhof4w?ofz#dQ zr7LN0;ddomeV}+o7kF(Cbu|c z+h%kia}3h-#VUUDl@{1@Je*rUZen4&_||*q?77|6Fw0&j8MG)15o(k+V^i144xPN6 zIRP3pJT`vmqTfR^8(189;cPpwQ?)M2tGl}c*9+Q)0P6cEpqNMb7fb`~hE>@geDXj% z^(*m!RhG}7E-yd>hi&e6^vBj6u93r-At#&1Jr0 z$CrYRXl5|?$p;48cAdjK33qg}M9c!5i^vbcP{K9K0`MC==R1H4O(=x%Y1&u&rXTz= zFv#Ff1C?c_z7cc!z&<@C+G|BSMg7eE$AgLYC2@q!k02}W(wiS zq?C=#jbyS>pg4to)j7h8J~rIdzxyLilz7JajV zh&IhEo^Ak}O30&!?oV#peNIX~hP^Cc4%M4yj@woxQg$cks>?^%DBBOC?t9a#MMwS5 zSOBUr0Dw|rRR1eg+-^Z`bg+5m_+hK5m=gn$?nBSQ;T+tPye>81a^em6wD23zet3PQ zR?bmLrZ@KjVESh|Zy={cp)W4cCpDvVhIrd3fpB~27ekkqwrrGvpRZzoCuMyH>+G~F zM~pLKQurX!>U5i9cjm3Mn!bx_1IHj(>TYD;L!3x5A7~;|RCG;UA{9QPq!(tka^4^r zs^1;$8}#jOGB099{>SlHPJgX$J5KDNbv>;cZ)HQbxd;xl*s8&fjqKHgQ~%TE%#ZdKt9uWn!e~>>)AogZ9X+{MwrJwLNAt;d@@bT- zE^yHNANTYZyX^D746$4&GNryy`vvPkKrax28*qPYnF~(V0QEVQ`9@S)2s-D3M1pd^ zC!OQuUqe_TZ+iLk*uGwOI1-pqW=UM2y2l!u!weJr30BS)SvRP)>cveY;>0Tl#SV$5 z#jY}^K~^K(sO;CjKWKry4q8Lal?LpJ1Dju@xk_hfk;I@4WmwUDj~I5WpDaE>-uI90 zyW^g?){)@BntoW(f1r4553Q?Lyxh)`s}D%YD)#MlUSHmDj_5moW_|xwj505e?%_uW)>6To>mCs`KvII`6SiB^M<$SydVOO<~hv`(b7H5z_(HgP4TL+nhuBw^@0jqhG%->I7{r zTv*R@P|ZIt5geXHTBj`$IFetJZpvT&9@ncB1v%fpSBve&R;BzfX7J#L{JCq1@85-N|;mYt`4SBW|c;_CeU zse$s;=P-R+2+LKd!#sY-jRlS{WW5_5eYh}~Uc=IRM^x~DzBxxlPzj*DhZEdej(DTT z+IAi{0-^5=?Ayri8ok&j4cj1N0e-Cj20vprqnYi@i~1pMHgDp0#UUL9;--2r!Jl;Dqec_R#)eD}l z)90DwD~p~|p8S6S&w@k}_)0GMUY9t**WixIK=gpK z74B;fV2F;o9Rq=oLAkl#asvQ~YkEg2%5Nc-Un0{%8)lLPCN1*V7-9G68hEZ1 zbtx26WQ7oZCk>3GHe2GsGEEE_4_2>x_%psO+spzJ^^ytSf9!b2Ek`|z%EOtMQT>8t%*_SQq z!?8^cxYk;0|K3eNHP2u!FC4cG6O(hH6!}Zj{4dQwhJAjSa>DWp6k8oa_?i5>WGz3& z-3IGjjSj33MUr&J&z_B4Ib1+qmF{N=^ghEP@j7B*3`t=uzL<6b|!75w5{SV?t B%ToXV literal 0 HcmV?d00001 diff --git a/docs/docs/plugins/install.md b/docs/docs/plugins/install.md index f0ca40839e..eedc97ca4a 100644 --- a/docs/docs/plugins/install.md +++ b/docs/docs/plugins/install.md @@ -65,8 +65,16 @@ Admin users can install plugins directly from the web interface, via the "Plugin {{ image("plugin/plugin_install_web.png", "Install plugin via web interface") }} +Enter the package name into the form as shown below. You can add a path and a version. Leave +the version field empty for the latest version. In case the package is on pypi the path can +be omitted. Pip will find it automatically. + +{{ image("plugin/plugin_install_git.png", "Install plugin from git") }} + !!! success "Plugin File" - A plugin installed via the web interface is added to the [plugins.txt](#plugin-installation-file-pip) plugin file. + A plugin installed via the web interface is added to the [plugins.txt](#plugin-installation-file-pip) plugin file as shown below. + +{{ image("plugin/plugin_install_txt.png", "Plugin.txt file") }} #### Local Directory From 36cfd2c1109ff7cafd0e375571e4159400588fc4 Mon Sep 17 00:00:00 2001 From: Mitch Davis Date: Sun, 21 Dec 2025 11:49:50 +1100 Subject: [PATCH 2/3] Improvements to the documentation instructions (#11044) --- docs/README.md | 48 ++++++++++++++++-------------------------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/docs/README.md b/docs/README.md index 5d51b82029..017cc6bd53 100644 --- a/docs/README.md +++ b/docs/README.md @@ -38,19 +38,13 @@ $ cd src $ pip install --require-hashes -r docs/requirements.txt ``` -## Build Documentation +## Schema generation -Before serving the documentation, you will need to build the API schema files from the source code, so they can be included in the documentation: - -``` -invoke build-docs -``` +Building the documentation requires extracting the API schema from the source code. !!! tip This command is only required when building the documentation for the first time, or when changes have been made to the API schema. -## Serve Local files - ``` $ invoke build-docs ``` @@ -71,41 +65,31 @@ Schema export completed: /home/inventree/src/docs/generated/schema.yml Documentation build complete, but mkdocs not requested ``` -If that worked, you can now generate the HTML format documentation pages: +## Viewing the documentation + +Generate the HTML files from the markdown source files, and start the MkDocs webpage server: ``` -$ mkdocs build -f docs/mkdocs.yml -``` - -## Viewing the generated output - -To view the documentation locally, run the following command to start the MkDocs webpage server: - -``` -$ mkdocs serve -f docs/mkdocs.yml -a localhost:8080 -``` - -Alternatively, you can use the `invoke` command: - -``` -invoke dev.docs-server -``` - -To see all the available options: - -``` -invoke dev.docs-server --help +$ mkdocs serve -f docs/mkdocs.yml ``` You can then point your web browser at http://localhost:8080/ +Alternatively, you can use the `invoke` command: + +``` +$ invoke dev.docs-server +``` + +If you need to, use the `-a` option after `mkdocs` or `invoke` to set the address and port. Run `invoke dev.docs-server --help` for details. + ## Editing the Documentation Files -Once the server is running, it will monitor the documentation files for any changes, and regenerate the HTML pages. +Once the server is running, it will monitor the documentation files for changes, and regenerate the HTML pages as required. Refresh your web browser to see the changes. ### Admonitions -"Admonition" blocks can be added as follow: +"Admonition" blocks can be added to the documentation source as follows: ``` !!! info "This is the admonition block title" This is the admonition block content From 27c4c5b467c84ce19cc2f05b27f174a10e7471ad Mon Sep 17 00:00:00 2001 From: Mitch Davis Date: Sun, 21 Dec 2025 11:52:37 +1100 Subject: [PATCH 3/3] Put the admin user info in one place (#11047) --- src/backend/InvenTree/config_template.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/backend/InvenTree/config_template.yaml b/src/backend/InvenTree/config_template.yaml index f08d86a84d..a65509f072 100644 --- a/src/backend/InvenTree/config_template.yaml +++ b/src/backend/InvenTree/config_template.yaml @@ -46,6 +46,12 @@ debug_shell: False # Set the admin URL, or use the environment variable INVENTREE_ADMIN_URL #admin_url: 'admin' +# Add new user on first startup by either adding values here or from a file +#admin_user: admin +#admin_email: info@example.com +#admin_password: inventree +#admin_password_file: '/etc/inventree/admin_password.txt' + # Configure the system logging level (or use environment variable INVENTREE_LOG_LEVEL) # Options: DEBUG / INFO / WARNING / ERROR / CRITICAL log_level: WARNING @@ -69,13 +75,6 @@ language: en-us # System time-zone (default is UTC). Reference: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones timezone: UTC - -# Add new user on first startup by either adding values here or from a file -#admin_user: admin -#admin_email: info@example.com -#admin_password: inventree -#admin_password_file: '/etc/inventree/admin_password.txt' - # Email backend configuration # See https://docs.inventree.org/en/stable/settings/email for more information on email configuration # You can either use (1) SMTP, (2) console or (3) anymail backends