šŸ‡¬šŸ‡§ Pwic.wiki server running on Python and SQLite
šŸ¦œ Welcome Demo page Features Install procedure Support
⭐ Special ⏰ History 📤 Email 🖨️ Print 💾 MD 💾 ODT
📌
1. General approach 2. Video tutorials 3. Technical FAQ 3.1. How can I check if Pwic.wiki has the feature that I need? 3.2. Is Pwic.wiki stable and safe to use? 3.3. What is the structure of the files? 3.4. How do you ensure the quality of the code? 3.5. What are the possibilities to customize Pwic.wiki? 3.6. Does the current website use custom code? 3.7. Why is nginx serving pages on this website? 3.8. Can Pwic.wiki run on Raspberry PI? 3.9. Can Pwic.wiki run in Docker? 3.10. Can Pwic.wiki use HTTPS with Let's Encrypt? 3.11. What is Pwic.wiki's raw memory footprint? 3.12. How can I use several CPUs? 3.13. How can I fix the limited speed of the database? 3.14. What are Pwic.wiki's metrics? 3.15. Which Markdown standard is supported? 3.16. Which OpenDocument standard is supported? 3.17. Where is the list of the supported lexers? 3.18. Does Pwic.wiki support 2FA? 3.19. Will you develop an efficient and fast bug tracker based on Pwic.wiki? 3.20. Can I contact your team in private? 📜 Attached documents

Related pages: šŸ‡«šŸ‡· Support

1. General approach

The issues and enhancement requests must be submitted via the public issue tracker on Github. Beware to not expose any sensitive data.

Because Pwic.wiki's code base is extendable, if your requirement can be handled with some custom code, it will not reintegrate the code base for everyone. We can discuss of new features if they are not specific to your own requirements.

To date, no consulting services are provided to help you to write custom extensions and bots. But you can be helped to determine if your requirement is feasible or not. If not, new extensions in the code base can be added for everyone.

2. Video tutorials

The videos are available on the official YouTube channel:

3. Technical FAQ

3.1. How can I check if Pwic.wiki has the feature that I need?

The features are listed of this website. They can also be compared in detail on the website WikiMatrix.org.

3.2. Is Pwic.wiki stable and safe to use?

Pwic.wiki offers a stable release 1.0 since July 2022, but also an early access to the latest changes through the git repository. You pick the version of your choice, but for the current website, it is always the last version to prove that it rocks.

3.3. What is the structure of the files?

3.4. How do you ensure the quality of the code?

flake8 and mypy are mostly used to verify the basic syntax and the typing of the variables across the function calls. These checks are static but help a lot to anticipate the errors. Dynamically, the code is tested in practice because it is used for the current official website. More recently, the validation has been extended discretionarily to CodeFactor.io that collects other tools like pylint, stylelint or bandit.

3.5. What are the possibilities to customize Pwic.wiki?

You can:

3.6. Does the current website use custom code?

Yes, in application of Pwic.wiki's design. This website uses the same version that you can download.

The implemented changes prevent a bit the abuse with the online demo. So if you can't connect, you will be able to do it with your own instance.

3.7. Why is nginx serving pages on this website?

The reverse proxy server nginx is used to serve the static files as recommended in the documentation of aiohttp. It is not mandatory to use it but it is better to lower the CPU workload and increase the response time. In our case, it is also a mandatory tool to share the hosting costs and the port 80 of the main server with another website. If you like French cooking, you can visit lesrecettesdeyanetfabio.ovh.

3.8. Can Pwic.wiki run on Raspberry PI?

Supposedly yes. Unfortunately because of covid, RĪ  are out of stock or too expensive. Consequently, no test occurred. The initial objective of the project was to host the current website on a RĪ .

3.9. Can Pwic.wiki run in Docker?

Yes, the procedure is explained here.

3.10. Can Pwic.wiki use HTTPS with Let's Encrypt?

Yes, the procedure is explained here. You need to buy a domain name at least.

3.11. What is Pwic.wiki's raw memory footprint?

This is a sample screenshot for a virtual test server running 2 GB of memory just after Pwic.wiki started:

User PID %CPU %Mem VSZ RSS TTY Stat Start Time Command
pwic 979 0.4 1.9 62500 39288 pts/0 S 23:23 0:00 python3 pwic.py

3.12. How can I use several CPUs?

In case you have intensive requirements, you need to follow this procedure. The idea is to run several instances of Pwic.wiki that listen of different internal ports behind a reverse proxy server. If you don't use the option keep_sessions, each node will have its own authentication and you could not switch to another node.

The instance Pwic.wiki on this server utilizes only 1 CPU.

3.13. How can I fix the limited speed of the database?

By design of the API, each call is a database transaction, that is a collection of cancellable modifications until they are saved on the disk surface. Making sure that the data are physically saved takes time. When you call the API in mass several times, the time spent to wait becomes very high and this explains why you can't make more than say 20 inserts per second. This behavior is documented, normal and safe.

The way to do a single commit consists in updating the database directly with a custom script, which is not recommended because it bypasses all the protections. You should use the API but you don't want to be slowed down. So, to unleash the database and release the bottleneck of the hard drive, you should instruct the database to act asynchronously through the option db_async. Thousands of inserts can then be done per second but your modifications can be lost if your computer is disconnected from its power supply. This option must be used when you have a huge activity.

3.14. What are Pwic.wiki's metrics?

On 11th February 2023, with the help of AlDanial/cloc v1.92 and after disambiguation:

Language Files Blank Comment Code
Python 9 1264 4042 8154
HTML 25 299 6 2595
PO File 2 616 56 1260
JavaScript 14 117 62 1209
Sass 2 222 63 785
Markdown 1 38 0 126
CSS 1 1 0 8
Bourne Shell 1 1 1 8
DOS Batch 1 1 1 8
Sum : 56 2559 4231 14153

3.15. Which Markdown standard is supported?

There is no standard for Markdown. The current implementation done by the dependency python-markdown2 is compatible with Github in broad outline. You can read the reference documentation online.

3.16. Which OpenDocument standard is supported?

The integration with OpenDocument Text (ODT) follows the specification "Open Document Format for Office Applications (OpenDocument) Version 1.2" released in 2011.

3.17. Where is the list of the supported lexers?

If you installed the optional dependency pygments, you can highlight your source codes. The following sample uses abap fortuitously:

REPORT zlexers. START-OF-SELECTION. WRITE 'Refer to the short names given at the link: https://pygments.org/docs/lexers/'. WRITE 'Download this page to MD file to view the expected syntax around ```'.

3.18. Does Pwic.wiki support 2FA?

No, unless your OAuth2 provider supports it already.

3.19. Will you develop an efficient and fast bug tracker based on Pwic.wiki?

Due the time and costs, this is not planned yet but fundamentally desired.

3.20. Can I contact your team in private?

If you discover a critical problem that you don't want to disclose for good reasons, please get in touch by email at "support pwic.wiki" (guess the missing character). Else please use the public issue tracker whose link is given above.

Attached documents

Revision #1 was last modified by gitbra
on 2023-04-28 at 00:00:00 — 4ec05f39428190d2

🔝 Top of the page 🔝