Pwic.wiki (pronounce /puik/) is a flexible and compact wiki server to support the documentation of your projects through comprehensive features and 5 basic roles. Its purpose is to serve as a common repository where the essential documentation can be easily located, accessed, edited, compared, validated, shared, exported and eventually analyzed by your own scripts.
Pwic.wiki is an advanced concept that attempts to fix the methodological limitations that you can face by participating to an IT project. If you ever wasted your time on managing your files, templates, styles and validations, you are probably searching for a fresh solution to support your process!
The official homepage is running the latest version.
- Access with a user account on both desktop and mobile devices
- Lightweight user interface illustrated with emojis
- Dark mode
- Homogeneous look and feel across the pages
- Encyclopedic mode to browse the latest validated revisions only
- Automatic summary of the page
- In-text search with inclusion, exclusion, hash tags and special keywords
- Search link for the browsers
- Highlight of the lines of code
- Export of a page to Markdown (.md), web page (.html) and OpenDocument (.odt)
- OData feed for BI reports
- RSS feed
- Share by link
- Share by email
- Internationalization: English, French, German, extendable to your language from a template or online
- LTR/RTL
- Text comparison between two revisions
- No change or no deletion possible after a page is validated
- Visible control hash key
- Page layout supervised with Markdown and HTML
- Markdown editor with syntax highlighting
- Formatting
- Annotations
- Task lists
- Classification of the pages with hashtags and statuses
- Automatic numbering of the headers with no gap
- Mandatory, linear and partially undoable versioning
- Management of attached documents by name, mime, size and magic bytes
- Import of texts from OpenDocument Text (ODT), HTML, Markdown and remote web pages
- Dynamic tables to track the progress of the documentation by project and tag
- Copyable templates between projects
- Possible automatic KB identifier
- Detection of the orphaned pages
- Detection of the broken links
- Visual graph of the links between the pages
System
- Low technical requirements and bandwidth
- Affordable solution based on open-source applications
- Fast setup with Python 3 in 15 minutes
- No data stored in proprietary formats
- Local storage of the uploaded files and SQLite database
- Possible deployment with command lines
- Critical administration not available online
- Support for HTTP, HTTPS and reverse proxy
- Unicode content and URL
- HTTP logging
- IP filtering
- Expirable sessions
Pwic.wiki
- Multi-projects with dedicated authorizations by user
- Global and project-dependent settings
- OAuth2-based federated authentication with control of the state (SSO)
- Two-factor authentication based on time (2FA TOTP)
- Cache system
- Private and public modes
- Custom CSS and templates
- Export of an entire project to Markdown and HTML
- Traceable activities
- API and command line to automate the operations
- Extensible code base for the following possibilities:
- Enhanced authorizations
- Password control
- Named emojis
- Content checks
- Content includes
- Automatic pages
- Redirections
- Related pages
- External cloud storage
- Automatic renaming of the files
- Bridged chat notifications
- ...
- No JavaScript needed to read the pages
- Install Python >=3.7:
apt-get install python3 python3-pip gzip --no-install-recommends
- Clone the repository
git clone https://github.com/gitbra/pwic.git
or uncompress the latest modifications in the folder of your choice - Install the dependencies:
python3 -m pip install --upgrade -r requirements.txt
- If your packages are managed by the system, use instead
apt-get install python3-xxx
wherexxx
stands for the name of each package listed in the filerequirements.txt
- If your packages are managed by the system, use instead
- Optionally modify some default values in the file
pwic_lib.py
with a text editor to increase the security:- Change the default password in
PwicConst.DEFAULTS['password']
- Write random characters in the secret salt
PwicConst.SALT
forever
- Change the default password in
- Initialize the database:
python3 pwic_admin.py init-db
- A sub-folder
db/
is created for all your data
- A sub-folder
- Create a new project
demo
for the useradmin
:python3 pwic_admin.py create-project demo "Demo project" admin
- Run the server:
python3 pwic.py
- Open your browser at
http://127.0.0.1:8080
by default - Log in with your account and change your password by using the link in the footer
- In the special area of the project, grant yourself the role Manager to allow the creation of new pages
Once you have well tested Pwic.wiki and defined the global and project-dependent variables described in the embedded help file, you can use the bind address 0.0.0.0
and change the port in the main command line.
Please use the issue tracker on Github to ask questions, report bugs and request new features.
To enhance the existing translations, you may edit the selected languages by joining the online workspace. Native speakers can achieve one translation precisely in few hours.
- Pwic.wiki server running on Python and SQLite
- Copyright (C) 2020-2024 Alexandre Bréard
- Released under the terms of the GNU Affero General Public License v3+
- aiohttp is released under Apache 2.0 License
- aiohttp-cors is released under Apache 2.0 License
- aiohttp-session is released under Apache 2.0 License
- cash.js is released under MIT License
- CodeMirror is released under MIT License
- ImageSize is released under MIT License
- Jinja2 is released under BSD-3-Clause License
- Markdown2 is released under MIT License
- MathJax is released under Apache 2.0 License
- Noto Sans is released under Open Font License
- PrettyTable is released under BSD License
- pygments is released under BSD-2-Clause License
- pyotp is released under MIT License
- Python is released under Python Software Foundation License
- SQLite is released in the public domain
- SVG pan & zoom is released under BSD-2-Clause License
- Swagger UI is released under Apache 2.0 License
- Viz.js is released under MIT License