1$ tree . -a --gitignore -I ".git*"
2.
3├── .gitignore # files and directories to exclude from Git versionning
4│
5├── .gitlab-ci.yml # configuration file for the GitLab CI
6│
7├── .vale # vale is a syntax-aware linter for documentation prose
8│ │
9│ └── ... # all the style guides used by vale
10│
11├── .vale.ini # vale's configuration file
12│
13├── Makefile # EPICS generated Makefile to build and manage this project
14│
15├── README.md # project home page
16│
17├── configure # EPICS configuration directory
18│ │
19│ ├── CONFIG # EPICS configuration file for builds
20│ ├── CONFIG_SITE # EPICS configuration file for application-specific builds
21│ ├── CONFIG_SITE.local # EPICS configuration file allowing to override CONFIG_SITE without having to modify it
22│ ├── Makefile # EPICS generated Makefile to build and manage configuration files
23│ ├── RELEASE # EPICS configuration file for base and external support modules location
24│ ├── RELEASE.local # EPICS configuration file allowing to override RELEASE without having to modify it
25│ ├── RULES # EPICS configuration file including the appropriate rules configuration file
26│ ├── RULES.ioc # EPICS build configuration file of the iocBoot/ sub-directorie(s)
27│ ├── RULES_DIRS # EPICS build configuration file of each subdirectory
28│ └── RULES_TOP # EPICS configuration specific to a Top
29│ # see web-archive:20240909130952/https://docs.epics-controls.org/en/latest/build-system/specifications.html#configuration-files
30│
31├── documentation # SSH Monitor documentation directory
32│ │
33│ ├── .checks # scripts used to check the documentation when building it
34│ │ │
35│ │ └── checks.py # Python code used to check the documentation (syntax, formating, etc)
36│ │
37│ ├── .doxygen # doxgen configuration directory, also used to store doxygen builds results
38│ │ │
39│ │ ├── doxyfile.conf # doxygen configuration file
40│ │ ├── doxygen_layout.xml # doxygen custom page layout
41│ │ └── filter-patterns-scripts # doxygen Python scripts used to modify .substitutions and .template files
42│ │ │ # just before doxygen interprets them, in order to trick doxygen into thinking
43│ │ │ # those files have a valid Python syntax (which is obviously not the cas)
44│ │ │ # allowing to generate documentation for those files with doxygen
45│ │ │
46│ │ ├── epics_substitutions_to_doxygen.py # Python script tricking doxygen into thinking .substitutions have a valid Python syntax
47│ │ └── epics_template_to_doxygen.py # Python script tricking doxygen into thinking .template have a valid Python syntax
48│ │
49│ ├── .site # this folder is where Sphinx will generate the web site content (e.g. .html pages) of the documentation
50│ │
51│ ├── .static # this folder is used to store some static content that will by Sphinx to generate the web site hosting the documentation
52│ │ └── ...
53│ │
54│ ├── CHANGELOG.md # record of all notable changes made to this project
55│ │
56│ ├── conf.py # Sphinx configuration file
57│ │
58│ ├── contribution_guide.md # doc about how to contribute to the SSH Monitor project
59│ │
60│ ├── explanations # doc about SSH Monitor explanations (https://diataxis.fr/explanation/)
61│ │ │
62│ │ ├── cmd_and_sub_explanations.md # doc explaning SSH Monitor `.cmd` and `.substitutions` files
63│ │ ├── custom_shell_instructions_explanations.md # doc explaning SSH Monitor custom command-lines
64│ │ ├── index.md # index page listing the other documentations of this directory
65│ │ ├── security_explanations.md # doc explaning SSH Monitor security
66│ │ └── tcp_ports_limitation_explanations.md # doc explaning SSH Monitor TCP ports limitation
67│ │
68│ ├── glossary.md # doc describing some EPICS and SSH Monitor terminology
69│ │
70│ ├── how-to-guides # doc about SSH Monitor how-to guides (https://diataxis.fr/how-to-guides/)
71│ │ │
72│ │ ├── basics # documentation about SSH Monitor basics
73│ │ │ │
74│ │ │ ├── alarm_server_how_to.md # doc about EPICS alarm servers
75│ │ │ ├── cmd_and_sub_how_to.md # doc showing how to configure and use `.cmd` and `.substitutions` files with SSH Monitor
76│ │ │ ├── custom_shell_instructions_how_to.md # doc showing how to specify SSH Monitor custom commands
77│ │ │ ├── epics_records_fields_how_to.md # doc showing how to configure and use some EPICS records fields with SSH Monitor
78│ │ │ ├── firewall_how_to.md # doc showing how to configure firewalls for SSH Monitor use
79│ │ │ ├── index.md # index page listing the other documentations of this directory
80│ │ │ ├── install_update_remove_how_to.md # doc showing how to install, update and remove SSH Monitor
81│ │ │ ├── run_ssh_monitor_how_to.md # doc showing how to run SSH Monitor
82│ │ │ ├── security_how_to.md # doc showing how to configure SSH Monitor targets for better security
83│ │ │ ├── ssh_how_to.md # doc showing how to configure SSH for SSH Monitor
84│ │ │ ├── ssh_monitor_daemon_how_to.md # doc showing how to set up a daemon for SSH Monitor
85│ │ │ └── ssh_monitor_service_how_to.md # doc showing how to set up a service for SSH Monitor
86│ │ │
87│ │ ├── index.md # index page listing the other documentations of this directory
88│ │ │
89│ │ ├── recommended # doc about SSH Monitor recommended features
90│ │ │ │
91│ │ │ ├── archiver_appliance_monitoring_how_to.md # doc about archiver appliance monitoring through SSH Monitor
92│ │ │ ├── hardware_raid_monitoring_with_megacli_how_to.md # doc about megacli monitoring through SSH Monitor
93│ │ │ ├── hardware_raid_monitoring_with_perccli_how_to.md # doc about perccli monitoring through SSH Monitor
94│ │ │ ├── hardware_raid_monitoring_with_storcli_how_to.md # doc about storcli monitoring through SSH Monitor
95│ │ │ ├── index.md # index page listing the other documentations of this directory
96│ │ │ ├── memory_monitoring_how_to.md # doc about memory monitoring through SSH Monitor
97│ │ │ ├── network_connection_monitoring_how_to.md # doc about network connection monitoring through SSH Monitor
98│ │ │ ├── partitions_monitoring_how_to.md # doc about partitions monitoring through SSH Monitor
99│ │ │ ├── processors_monitoring_how_to.md # doc about processors monitoring through SSH Monitor
100│ │ │ ├── smart_data_monitoring_how_to.md # doc about S.M.A.R.T. monitoring through SSH Monitor
101│ │ │ ├── software_raid_monitoring_with_btrfs_how_to.md # doc about btrf monitoring through SSH Monitor
102│ │ │ ├── software_raid_monitoring_with_lvm_how_to.md # doc about lvm monitoring through SSH Monitor
103│ │ │ ├── software_raid_monitoring_with_mdadm_how_to.md # doc about mdadm monitoring through SSH Monitor
104│ │ │ ├── software_raid_monitoring_with_zfs_how_to.md # doc about zfs monitoring through SSH Monitor
105│ │ │ ├── system_monitoring_with_idrac_how_to.md # doc about idrac monitoring through SSH Monitor
106│ │ │ ├── system_monitoring_with_ilo_how_to.md # doc about ilow monitoring through SSH Monitor
107│ │ │ ├── system_monitoring_with_ipmi_how_to.md # doc about ipmi monitoring through SSH Monitor
108│ │ │ └── system_monitoring_with_xclarity_how_to.md # doc about xclarity monitoring through SSH Monitor
109│ │ │
110│ │ └── tips # doc about SSH Monitor tips
111│ │ │
112│ │ ├── index.md # index page listing the other documentations of this directory
113│ │ ├── local_monitoring_how_to.md # doc about monitoring the monitoring machine (i.e. the target machine is also the host)
114│ │ ├── mixed_commands_how_to.md # doc about processing -- on the host -- the result of a command send to a target
115│ │ └── ssh_jump_how_to.md # doc about monitoring targets through intermediate machines (thanks to SSH jumps)
116│ │
117│ ├── index.md # index page listing the other documentations of this directory
118│ │
119│ ├── presentations # presentations about SSH Monitor in general
120│ │ │
121│ │ ├── ssh_monitor.drawio # drawio image source summarizing SSH Monitor
122│ │ ├── ssh_monitor.png # image summarizing SSH Monitor
123│ │ ├── ssh_monitor_presentation_en.odp # english presentation about SSH Monitor (.odp format)
124│ │ ├── ssh_monitor_presentation_en.pdf # english presentation about SSH Monitor (.pdf format)
125│ │ ├── ssh_monitor_presentation_fr.odp # french presentation about SSH Monitor (.odp format)
126│ │ └── ssh_monitor_presentation_fr.pdf # french presentation about SSH Monitor (.pdf format)
127│ │
128│ ├── project_layout.md # current file
129│ │
130│ ├── references # doc about SSH Monitor references (https://diataxis.fr/reference/)
131│ │ │
132│ │ ├── index.md # index page listing the other documentations of this directory
133│ │ │
134│ │ ├── source-code # doc about SSH Monitor source code
135│ │ │ │
136│ │ │ ├── index.md # index page listing the other documentations of this directory
137│ │ │ ├── menuScan_dbd.md # doc about the EPICS DataBase Definition enhancing the EPICS 'SCAN' field
138│ │ │ ├── sshmonitorASubCore_c.md # doc about the EPICS aSub record code (the core of the SSH Monitor logic)
139│ │ │ ├── sshmonitorASubCore_dbd.md # doc about the EPICS DataBase Definition declaring previous aSub records
140│ │ │ ├── sshmonitorASubUtils_c.md # doc about the source code of some utility fonctions
141│ │ │ └── sshmonitorMain_cpp.md # doc about the source code main file (starting point)
142│ │ │
143│ │ ├── substitutions # doc about SSH Monitor .substitutions files
144│ │ │ │
145│ │ │ ├── archiver_appliance_monitoring_substitutions.md # doc about the archiver appliance monitoring .substitutions file
146│ │ │ ├── connection_monitoring_substitutions.md # doc about the connection monitoring .substitutions file
147│ │ │ ├── example_monitoring_substitutions.md # doc about the example monitoring .substitutions file
148│ │ │ ├── index.md # index page listing the other documentations of this directory
149│ │ │ ├── memory_monitoring_substitutions.md # doc about the memory monitoring .substitutions file
150│ │ │ ├── partitions_monitoring_substitutions.md # doc about the partitions monitoring .substitutions file
151│ │ │ └── processors_monitoring_substitutions.md # doc about the processors monitoring .substitutions file
152│ │ │
153│ │ └── template # doc about SSH Monitor .template file
154│ │ │
155│ │ ├── index.md # index page listing the other documentations of this directory
156│ │ └── ssh_monitor_core_template.md # doc about the EPICS DataBase file defining monitoring records
157│ │
158│ ├── similar_work_and_alternatives.md # doc about SSH Monitor similar programs and alternatives
159│ │
160│ ├── troubleshooting_guide.md # doc about common SSH Monitor pitfalls and associated troubleshoot
161│ │
162│ └── tutorials # doc about SSH Monitor tutorials (https://diataxis.fr/tutorials/)
163│ │
164│ ├── index.md
165│ ├── quick_step_by_step_tutorial_on_a_nixos_linux_vm.md # step-by-step SSH Monitor tutorial using a NixOS virtual machine
166│ └── step_by_step_tutorial_on_a_rocky_linux_vm.md # step-by-step SSH Monitor tutorial using a Rocky virtual machine
167│
168├── flake.lock # Nix lock file
169├── flake.nix # Nix configuration file
170│ # see https://github.com/epics-extensions/EPNix
171│
172├── gui # HMIs examples
173│ │
174│ ├── css # HMIs examples for CSS
175│ │ │
176│ │ ├── archiver_appliance_monitoring.opi # archiver appliance monitoring HMI example for CSS
177│ │ ├── connection_monitoring.opi # connection monitoring HMI example for CSS
178│ │ ├── main_display.opi # main HMI example for CSS
179│ │ ├── memory_monitoring.opi # memory monitoring HMI example for CSS
180│ │ ├── partitions_monitoring.opi # parittions monitoring HMI example for CSS
181│ │ └── processors_monitoring.opi # processors monitoring HMI example for CSS
182│ │
183│ └── phoebus # HMIs examples for Phoebus
184│ │
185│ ├── archiver_appliance_monitoring.bob # archiver appliance monitoring HMI example for Phoebus
186│ ├── connection_monitoring.bob # connection monitoring HMI example for Phoebus
187│ ├── main_display.bob # main HMI example for Phoebus
188│ ├── memory_monitoring.bob # memory monitoring HMI example for Phoebus
189│ ├── partitions_monitoring.bob # parittions monitoring HMI example for Phoebus
190│ └── processors_monitoring.bob # processors monitoring HMI example for Phoebus
191│
192├── iocBoot # EPICS generated directory used to IOC programs with the intended configuration
193│ │
194│ ├── Makefile # EPICS generated Makefile to build and manage iocBoot/ sub-directorie(s)
195│ └── iocsshmonitor
196│ ├── Makefile # EPICS generated Makefile to build and manage files associated to the .cmd
197│ └── st_tests.cmd # EPICS executable file instructing the program loader to run the associated IOC program
198│
199├── poetry.lock # Python Poetry lock file
200├── pyproject.toml # Python Poetry configuration file, used for Sphinx and other documentation build/checking dependencies
201│
202├── sshmonitorApp # EPICS generated directory where the source code and database related files
203│ │ # are located
204│ │
205│ ├── Makefile # EPICS generated Makefile to build and manage an App
206│ │
207│ ├── db # EPICS generated directory where database related files are located
208│ │ │
209│ │ ├── Makefile # EPICS generated Makefile to build and manage database related files
210│ │ ├── archiver_appliance_monitoring.substitutions # SSH Monitor .substitutions file for default archiver appliance monitoring
211│ │ ├── connection_monitoring.substitutions # SSH Monitor .substitutions file for default connection monitoring
212│ │ ├── example_monitoring.substitutions # SSH Monitor .substitutions file used as a monitoring example
213│ │ ├── memory_monitoring.substitutions # SSH Monitor .substitutions file for default memory monitoring
214│ │ ├── partitions_monitoring.substitutions # SSH Monitor .substitutions file for default partitions monitoring
215│ │ ├── processors_monitoring.substitutions # SSH Monitor .substitutions file for default processors monitoring
216│ │ └── ssh_monitor_core.template # EPICS DataBase file defining monitoring records
217│ │
218│ └── src # EPICS generated directory where source code files are located
219│ │
220│ ├── Makefile # EPICS generated Makefile to build and manage source files
221│ ├── menuScan.dbd # EPICS DataBase Definition enhancing the EPICS 'SCAN' field
222│ ├── sshmonitorASubCore.c # EPICS aSub record source code (the core of the SSH Monitor logic)
223│ ├── sshmonitorASubCore.dbd # EPICS DataBase Definition declaring previous aSub records
224│ ├── sshmonitorASubUtils.c # source code of some utility fonctions
225│ ├── sshmonitorASubUtils.h # header file of the previous utility fonctions
226│ └── sshmonitorMain.cpp # source code main file (starting point)
227│
228├── tests # SSH Monitor tests
229│ │
230│ ├── full_tests.nix # Nix file preparing the tests environment and running full_test_script.py
231│ ├── full_tests_script.py # Python script containning all the tests
232│ ├── pyproject.toml # Python configuration file (e.g. for ruff configuration)
233│ ├── quick_tests.nix # Nix file preparing the tests environment and running quick_test_script.py
234│ └── quick_tests_script.py # TODO Python script containning less tests (for faster iterations when working locally)
235│
236└── training-vm # Nix files allowing to generate the NixOS training virtual machine
237 │
238 ├── configuration.nix # Nix configuration file for the NixOS training virtual machine
239 └── default.nix # default Nix configuration file