3. Project Structure¶
The project structure is as follows:
├── .janus
│ ├── jellygrass.vim
│ ├── vim
│ └── vim-kolor
├── configuration_files
│ ├── apticron.conf
│ ├── nginx
│ │ ├── letsencrypt.conf
│ │ └── ssl.conf
│ ├── origin-pull-ca.pem
│ ├── postfix_main.cf
│ ├── .tmux.conf
│ ├── uwsgi.service
│ ├── .vimrc.after
│ └── .zshrc
├── custom_scripts
│ ├── create_db
│ ├── get_release_notes.py
│ ├── janus_setup.sh
│ ├── release.py
│ └── shrinkpdf
├── docs
│ ├── build
│ ├── make.bat
│ ├── Makefile
│ ├── requirements.in
│ ├── requirements.txt
│ └── source
│ ├── 01_introduction.rst
│ ├── 02_features.rst
│ ├── 03_structure.rst
│ ├── 04_functions.rst
│ ├── 05_roadmap.rst
│ ├── 06_contributing.rst
│ ├── conf.py
│ ├── index.rst
│ ├── _static
│ └── _templates
├── tests
│ ├── lib
│ ├── results
│ │ └── .gitkeep
│ ├── tests.sh
│ ├── unit-tests.sh
│ └── Vagrant
│ ├── Vagrantfile.bionic64
│ ├── Vagrantfile.focal64
│ ├── Vagrantfile.trusty32
│ ├── Vagrantfile.trusty64
│ ├── Vagrantfile.xenial32
│ └── Vagrantfile.xenial64
├── .all-contributorsrc
├── .gitattributes
├── .gitignore
├── .gitmodules
├── .readthedocs.yaml
├── .travis.yml
├── .versionrc
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── package.json
├── package-lock.json
├── README.md
├── setup.sh
└──setupLibrary.sh
3.1. Directories¶
- .janus
This directory contains custom janus configuration files. It gets copied into the
$HOME
directory- configuration_files
Cloudflare, Vim, TMUX, Nginx, uwsgi, Postfix, apticron,
.zshrc
- custom_scripts
shrinkpdf
andcreate_db
are copied to$HOME/bin
.janus_setup.sh
is used during installing, whileget_release_notes.py
andrelease.py
are used during development of this project to automate releases.- docs
Sphinx, documentation for the project. This is what you are currently reading!
- tests
Project test suite. Tests are run against a set of Vagrant VMs.
3.2. Files¶
Note
We’ll not go through each and every file here, the assumption is that certain files
are pretty obvious, for example, the git-related files such as .gitignore
and
.gitattributes
, CI files like .travis.yml
, etc.
- .all-contributorsrc
This project uses the all-contributors specification. The data used to generate the contributors list is stored in here.
- .readthedocs.yaml
The project documentation is hosted on Read the Docs. The configuration for the documentation builds is defined in here.
- .versionrc
This project uses standard-version. for versioning using semver and CHANGELOG generation powered by Conventional Commits. The
standard-version
configuration is defined in here, based on the conventional-changelog-config-spec.- CONTRIBUTING.md
Guidelines on how to contribute to this project.
- setup.sh
This is the core of this project. This is the script that we actually run when setting up a new Ubuntu server. If you want to add additional features, you’ll probably wanna edit this file. For details of the additional functions that constitute the basis for this fork, see Functions.
- setupLibrary.sh
Contains the initial setup functions plus a couple of helper functions that are “imported” in
setup.sh
above