Compare commits

..

No commits in common. "master" and "2.3" have entirely different histories.
master ... 2.3

202 changed files with 277 additions and 51024 deletions

View File

@ -1,120 +0,0 @@
<p align="center">
<img src="https://cdn.ocsinventory-ng.org/common/banners/banner660px.png" height=300 width=660 alt="Banner">
</p>
<h1 align="center">OCS Inventory</h1>
<p align="center">
<b>Some Links:</b><br>
<a href="http://ask.ocsinventory-ng.org">Ask question</a> |
<a href="#COMMING_SOON_STAY_CONNECTED">Installation</a> |
<a href="https://www.ocsinventory-ng.org/?utm_source=github-ocs">Website</a>
</p>
# OCS Inventory Contributing Guidelines
## Pull Request Process
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Add your changes: `git add folder/file1.php`
4. Commit your changes: `git commit -m 'Add some feature'`
5. Push to the branch: `git push origin my-new-feature`
6. Submit a pull request !
## Pull Request Informations
When contributing, please open an issue before or contact the team using mail. This will prevent all the duplicate of work.
Also, check if your contribution is not already in the roadmap or affiliated to an issue.
If you are contributing on a small scale (translation, a few line modification), you don't need open an issue or contact the team but you will need to explain what you've done in the Pull Request comment and provide as accurate commit messages as possible.
Cf. Commits Messages Name Informations
If you need to discuss about a big change or need some help of our team during the development of your contribution,
we can use other communication method like Telegram, IRC, Skype.
## Commits Messages Name Informations
Try to create as accurate as possible commit messages.
This will help us to speed up the review process and to reduce the misunderstanding (which can lead to a Pull Request to be rejected)
There is no commit messages convention but here are some examples :
1. Create as short as possible commit name
2. One commit for one modification
3. Always leave the second commit line blank
If it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes, and are better split up into several commits using `git add -p`.
## Code of Conduct
### Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
### Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
### Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
### Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
### Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at `contact@ocsinventory-ng.org` . All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
### Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@ -1,40 +0,0 @@
## Must read before submitting
Please, take a look to our contributing guidelines before submitting your pull request.
There's some simple rules that will help us to speed up the review process and avoid any misunderstanding
[Contributors GuideLines](https://github.com/OCSInventory-NG/OCSInventory-ocsreports/blob/master/.github/Contributing.md)
## Status
**READY/IN DEVELOPMENT/HOLD**
## Description
A few sentences describing the overall goals of the pull request's commits.
## Related Issues
Put here all the related issues link
## Todos
- [ ] Tests
- [ ] Documentation
## Test environment
If some tests has been already made, please give us your test environment' specs
#### General informations
Docker host's operating system :
Mysql Server version :
#### Docker informations
Docker compose version :
Docker version :
## Deploy Notes
Notes regarding deployment the contained body of work. These should note any dependencies changes,
logical changes, etc.
1.
## Impacted Areas in Application
List general components of the application that this PR will affect:
*

View File

@ -1,74 +0,0 @@
FROM ubuntu:22.04
ENV OCS_VERSION 2.10.0
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/ /tmp/conf
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,383 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR 0
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# Link ipdiscover network to computer TAG
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,85 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.10
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,48 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

View File

@ -1 +0,0 @@
ocsapi:$apr1$BcAk5f/A$0O5c/DSy92/o.vpwwshWQ.

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDlzCCAn+gAwIBAgIUZq+XFJryUuBpkwebSwjSy/hfMCkwDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLbXlvY3NzZXJ2ZXIw
HhcNMjIwNDEzMDk0OTUzWhcNMzIwNDEwMDk0OTUzWjBbMQswCQYDVQQGEwJGUjET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMRQwEgYDVQQDDAtteW9jc3NlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOQDcGzmYzzgVycXSEZWMJ2TEtnmjouNuUKAVQUcELMkZOk0
TIRz7QhPIOCiH2bklji+ByyVZg/uXRFJlT/P46rPor/OuRK2Lkrt+APr+FmkLgvf
JHMfm7YRbZuWVRJq0htNNL6szwHEFE99GlRy7SuapkhKSo4qY/LjrrR7E7DnPj/G
7o21ge3OpOfbmx9xVWbEZaJqMOZDt1y3fbp3hQsflVM0AKdg7OoHOBWnv65iJIkN
LtG7Icqcp+8AKnL1PaiMU+P970GTMZyZ0NWVAWgab9+Wl+makTTdDdQgJIhg19og
ReLeYspEQlzXmEz+8JAxWGqsu+HuiZ6ClSl04W0CAwEAAaNTMFEwHQYDVR0OBBYE
FEljOkF7g17RD+pOpJ7M6dovwI9uMB8GA1UdIwQYMBaAFEljOkF7g17RD+pOpJ7M
6dovwI9uMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKA2Fcot
58X97tsLWC6eJrF2MLJzcNeSiiJayG9bT8agsUE8WGq5fvHvf5E54tueCp/q+a7V
k4ZowCJF3RAvAqzRkMLQWaGms0Brz4qRtVvRqhWkP7aMGhUieOS2rTfLZ+TYPKfK
561w8gSpxs9uRXbhnYeUchxJxCUg0CbxQwsjltrvnOF2LVP6JJDtYcc/NiDXhP4W
pTp+EdwXt87VSRkTrqjEQO7/3TMsNjhi0PMFHnQf47ijLt44XaNGKh9pY31Ae9oo
6IuRygJc6QNVoGRmF2bxsorU4i4rA3kR2Ir9AUbxJT6MtuLtx8DGB8Dmp6bKmIv+
HZH21wRRhwrYJb8=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkA3Bs5mM84Fcn
F0hGVjCdkxLZ5o6LjblCgFUFHBCzJGTpNEyEc+0ITyDgoh9m5JY4vgcslWYP7l0R
SZU/z+Oqz6K/zrkSti5K7fgD6/hZpC4L3yRzH5u2EW2bllUSatIbTTS+rM8BxBRP
fRpUcu0rmqZISkqOKmPy4660exOw5z4/xu6NtYHtzqTn25sfcVVmxGWiajDmQ7dc
t326d4ULH5VTNACnYOzqBzgVp7+uYiSJDS7RuyHKnKfvACpy9T2ojFPj/e9BkzGc
mdDVlQFoGm/flpfpmpE03Q3UICSIYNfaIEXi3mLKREJc15hM/vCQMVhqrLvh7ome
gpUpdOFtAgMBAAECggEBAM4BGXMaV/CpU7R6wY7i0jubpH2AY6tMGWQu5CGgsKnZ
qN5VpQhKYI6QR0kM0Mg6oEqVzY+HT1X3athynciwf6ZUwFsBX467UGncRKbubEw5
HG0XZywoE5vUdS4MDcJ9BmUqRQw8vy5+REdo5QAFcahiqfdIP8HgJLtO4Aop5Kl/
HoLqR83q3vBHfidxTX2z4m05t6ucAbmqLAgAb2GzRHEvdCpSXvs7M9ZyR/rvdhSV
pswWR7XIUic50Lc8tHXyaKinuBFOCWCszsirPLAVPrs1D7Gq8kmdxUEEj0V9VbEE
8afsb9cCojrDISn814WwjX+zVwjRwyr3v3BLHVGu06ECgYEA+1VHUwBTUnHmnMR+
6XE1nkBStedvXGsMDIxK/VhNXAylUz4kfJ0bMPKdzbxSieHwA8O1+Hg4gN31V2Sn
RgT5P0sLGdideysoy8yR5Aiiwx+7EXGqSQltY2lpaykP9wvpznWi3k/Wd7dAaTCd
jPCtkzoLYMDzaQ9uc4A2VyY00RkCgYEA6D9PPvV6YE8S7G7sGwTSt9mgobZNm1AV
BjDmtEPfDSK59rT8PpoN+225c1qaIIODdH0DHK9ZbPzo/29tW1l9zgGjEXEw396v
Q9y99Ofh0JEsQbJJw/nPdV8dHKOL2ek3UWsscpsk5dUb+4gBpE+/wH21j7UiczKt
a8whmMFw+XUCgYAPYdHCr7NpyVTO5WvLB8W7UL5/KZH0Owz6u59fUAc0CgYYSSZc
hhUC8uZbkBoRHEXfRRwe/+SdZng8iAmAzI8go4wjYdGJl0Og7X1EUo77mDaPw8Aj
RjNusSXljBbRDOabXzG/n21F2G5VwcbyuEw3RYcqvcRn+qzM3tz0in8TCQKBgDe1
N+T6LOh9DyT3VlsExSakZQtlFyhyBRj/EdebkB0ufzzWHMtHWKM+poUs7ltuMFH4
yo5O4TxrTdg3ehu3U53edqbwZ7DLUW8Nu+LK3DeTGvKHOXpwqXqV3f3InPsgHczB
0F+NJ0SZ4aRr8zjeiDg77xkRcboAJej9hfGGNPshAoGALPS2HtT/1ycsER3a33NW
A8j/2TfovcjZ9u15q5KDLRZ+3UngLvVwPJO1j/uLPqyyRsQID7SE29KCj/E8kOZH
clbLXZmslyk369HOlpXZEXvR7rDxOt1jdojQrtEyW4gDT8k4iEw8nPcJyJ7YSVp/
Qa0OOCtQPPvBt0Be1bHTGek=
-----END PRIVATE KEY-----

View File

@ -1,48 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# OCS server configuration
#
server {
listen ${LISTEN_PORT} ${PORT_TYPE} default_server;
ssl_certificate /etc/nginx/certs/${SSL_CERT};
ssl_certificate_key /etc/nginx/certs/${SSL_KEY};
location / {
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://ocsapplication;
}
location /ocsapi {
auth_basic "OCS Api area";
auth_basic_user_file /etc/nginx/auth/${API_AUTH_FILE};
}
location /download {
proxy_read_timeout ${READ_TIMEOUT};
proxy_connect_timeout ${CONNECT_TIMEOUT};
proxy_send_timeout ${SEND_TIMEOUT};
client_max_body_size ${MAX_BODY_SIZE};
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,74 +0,0 @@
FROM ubuntu:22.04
ENV OCS_VERSION 2.11.0
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/ /tmp/conf
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,383 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR 0
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# Link ipdiscover network to computer TAG
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,85 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.11
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,48 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

View File

@ -1 +0,0 @@
ocsapi:$apr1$BcAk5f/A$0O5c/DSy92/o.vpwwshWQ.

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDlzCCAn+gAwIBAgIUZq+XFJryUuBpkwebSwjSy/hfMCkwDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLbXlvY3NzZXJ2ZXIw
HhcNMjIwNDEzMDk0OTUzWhcNMzIwNDEwMDk0OTUzWjBbMQswCQYDVQQGEwJGUjET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMRQwEgYDVQQDDAtteW9jc3NlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOQDcGzmYzzgVycXSEZWMJ2TEtnmjouNuUKAVQUcELMkZOk0
TIRz7QhPIOCiH2bklji+ByyVZg/uXRFJlT/P46rPor/OuRK2Lkrt+APr+FmkLgvf
JHMfm7YRbZuWVRJq0htNNL6szwHEFE99GlRy7SuapkhKSo4qY/LjrrR7E7DnPj/G
7o21ge3OpOfbmx9xVWbEZaJqMOZDt1y3fbp3hQsflVM0AKdg7OoHOBWnv65iJIkN
LtG7Icqcp+8AKnL1PaiMU+P970GTMZyZ0NWVAWgab9+Wl+makTTdDdQgJIhg19og
ReLeYspEQlzXmEz+8JAxWGqsu+HuiZ6ClSl04W0CAwEAAaNTMFEwHQYDVR0OBBYE
FEljOkF7g17RD+pOpJ7M6dovwI9uMB8GA1UdIwQYMBaAFEljOkF7g17RD+pOpJ7M
6dovwI9uMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKA2Fcot
58X97tsLWC6eJrF2MLJzcNeSiiJayG9bT8agsUE8WGq5fvHvf5E54tueCp/q+a7V
k4ZowCJF3RAvAqzRkMLQWaGms0Brz4qRtVvRqhWkP7aMGhUieOS2rTfLZ+TYPKfK
561w8gSpxs9uRXbhnYeUchxJxCUg0CbxQwsjltrvnOF2LVP6JJDtYcc/NiDXhP4W
pTp+EdwXt87VSRkTrqjEQO7/3TMsNjhi0PMFHnQf47ijLt44XaNGKh9pY31Ae9oo
6IuRygJc6QNVoGRmF2bxsorU4i4rA3kR2Ir9AUbxJT6MtuLtx8DGB8Dmp6bKmIv+
HZH21wRRhwrYJb8=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkA3Bs5mM84Fcn
F0hGVjCdkxLZ5o6LjblCgFUFHBCzJGTpNEyEc+0ITyDgoh9m5JY4vgcslWYP7l0R
SZU/z+Oqz6K/zrkSti5K7fgD6/hZpC4L3yRzH5u2EW2bllUSatIbTTS+rM8BxBRP
fRpUcu0rmqZISkqOKmPy4660exOw5z4/xu6NtYHtzqTn25sfcVVmxGWiajDmQ7dc
t326d4ULH5VTNACnYOzqBzgVp7+uYiSJDS7RuyHKnKfvACpy9T2ojFPj/e9BkzGc
mdDVlQFoGm/flpfpmpE03Q3UICSIYNfaIEXi3mLKREJc15hM/vCQMVhqrLvh7ome
gpUpdOFtAgMBAAECggEBAM4BGXMaV/CpU7R6wY7i0jubpH2AY6tMGWQu5CGgsKnZ
qN5VpQhKYI6QR0kM0Mg6oEqVzY+HT1X3athynciwf6ZUwFsBX467UGncRKbubEw5
HG0XZywoE5vUdS4MDcJ9BmUqRQw8vy5+REdo5QAFcahiqfdIP8HgJLtO4Aop5Kl/
HoLqR83q3vBHfidxTX2z4m05t6ucAbmqLAgAb2GzRHEvdCpSXvs7M9ZyR/rvdhSV
pswWR7XIUic50Lc8tHXyaKinuBFOCWCszsirPLAVPrs1D7Gq8kmdxUEEj0V9VbEE
8afsb9cCojrDISn814WwjX+zVwjRwyr3v3BLHVGu06ECgYEA+1VHUwBTUnHmnMR+
6XE1nkBStedvXGsMDIxK/VhNXAylUz4kfJ0bMPKdzbxSieHwA8O1+Hg4gN31V2Sn
RgT5P0sLGdideysoy8yR5Aiiwx+7EXGqSQltY2lpaykP9wvpznWi3k/Wd7dAaTCd
jPCtkzoLYMDzaQ9uc4A2VyY00RkCgYEA6D9PPvV6YE8S7G7sGwTSt9mgobZNm1AV
BjDmtEPfDSK59rT8PpoN+225c1qaIIODdH0DHK9ZbPzo/29tW1l9zgGjEXEw396v
Q9y99Ofh0JEsQbJJw/nPdV8dHKOL2ek3UWsscpsk5dUb+4gBpE+/wH21j7UiczKt
a8whmMFw+XUCgYAPYdHCr7NpyVTO5WvLB8W7UL5/KZH0Owz6u59fUAc0CgYYSSZc
hhUC8uZbkBoRHEXfRRwe/+SdZng8iAmAzI8go4wjYdGJl0Og7X1EUo77mDaPw8Aj
RjNusSXljBbRDOabXzG/n21F2G5VwcbyuEw3RYcqvcRn+qzM3tz0in8TCQKBgDe1
N+T6LOh9DyT3VlsExSakZQtlFyhyBRj/EdebkB0ufzzWHMtHWKM+poUs7ltuMFH4
yo5O4TxrTdg3ehu3U53edqbwZ7DLUW8Nu+LK3DeTGvKHOXpwqXqV3f3InPsgHczB
0F+NJ0SZ4aRr8zjeiDg77xkRcboAJej9hfGGNPshAoGALPS2HtT/1ycsER3a33NW
A8j/2TfovcjZ9u15q5KDLRZ+3UngLvVwPJO1j/uLPqyyRsQID7SE29KCj/E8kOZH
clbLXZmslyk369HOlpXZEXvR7rDxOt1jdojQrtEyW4gDT8k4iEw8nPcJyJ7YSVp/
Qa0OOCtQPPvBt0Be1bHTGek=
-----END PRIVATE KEY-----

View File

@ -1,50 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# OCS server configuration
#
server {
listen ${LISTEN_PORT} ${PORT_TYPE} default_server;
ssl_certificate /etc/nginx/certs/${SSL_CERT};
ssl_certificate_key /etc/nginx/certs/${SSL_KEY};
location / {
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://ocsapplication;
}
location /ocsapi {
auth_basic "OCS Api area";
auth_basic_user_file /etc/nginx/auth/${API_AUTH_FILE};
proxy_pass http://ocsapplication/ocsapi;
}
location /download {
proxy_read_timeout ${READ_TIMEOUT};
proxy_connect_timeout ${CONNECT_TIMEOUT};
proxy_send_timeout ${SEND_TIMEOUT};
client_max_body_size ${MAX_BODY_SIZE};
proxy_pass http://ocsapplication/download;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,74 +0,0 @@
FROM ubuntu:22.04
ENV OCS_VERSION 2.12.1
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/ /tmp/conf
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,383 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR OCS_DBI_PRINT_ERROR
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# Link ipdiscover network to computer TAG
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,87 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.12.1
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
- "profilesconfdata:/usr/share/ocsinventory-reports/ocsreports/config/profiles"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
OCS_DBI_PRINT_ERROR: 0
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:
profilesconfdata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,49 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/OCS_DBI_PRINT_ERROR/'"$OCS_DBI_PRINT_ERROR"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

View File

@ -1 +0,0 @@
ocsapi:$apr1$BcAk5f/A$0O5c/DSy92/o.vpwwshWQ.

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDlzCCAn+gAwIBAgIUZq+XFJryUuBpkwebSwjSy/hfMCkwDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLbXlvY3NzZXJ2ZXIw
HhcNMjIwNDEzMDk0OTUzWhcNMzIwNDEwMDk0OTUzWjBbMQswCQYDVQQGEwJGUjET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMRQwEgYDVQQDDAtteW9jc3NlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOQDcGzmYzzgVycXSEZWMJ2TEtnmjouNuUKAVQUcELMkZOk0
TIRz7QhPIOCiH2bklji+ByyVZg/uXRFJlT/P46rPor/OuRK2Lkrt+APr+FmkLgvf
JHMfm7YRbZuWVRJq0htNNL6szwHEFE99GlRy7SuapkhKSo4qY/LjrrR7E7DnPj/G
7o21ge3OpOfbmx9xVWbEZaJqMOZDt1y3fbp3hQsflVM0AKdg7OoHOBWnv65iJIkN
LtG7Icqcp+8AKnL1PaiMU+P970GTMZyZ0NWVAWgab9+Wl+makTTdDdQgJIhg19og
ReLeYspEQlzXmEz+8JAxWGqsu+HuiZ6ClSl04W0CAwEAAaNTMFEwHQYDVR0OBBYE
FEljOkF7g17RD+pOpJ7M6dovwI9uMB8GA1UdIwQYMBaAFEljOkF7g17RD+pOpJ7M
6dovwI9uMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKA2Fcot
58X97tsLWC6eJrF2MLJzcNeSiiJayG9bT8agsUE8WGq5fvHvf5E54tueCp/q+a7V
k4ZowCJF3RAvAqzRkMLQWaGms0Brz4qRtVvRqhWkP7aMGhUieOS2rTfLZ+TYPKfK
561w8gSpxs9uRXbhnYeUchxJxCUg0CbxQwsjltrvnOF2LVP6JJDtYcc/NiDXhP4W
pTp+EdwXt87VSRkTrqjEQO7/3TMsNjhi0PMFHnQf47ijLt44XaNGKh9pY31Ae9oo
6IuRygJc6QNVoGRmF2bxsorU4i4rA3kR2Ir9AUbxJT6MtuLtx8DGB8Dmp6bKmIv+
HZH21wRRhwrYJb8=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkA3Bs5mM84Fcn
F0hGVjCdkxLZ5o6LjblCgFUFHBCzJGTpNEyEc+0ITyDgoh9m5JY4vgcslWYP7l0R
SZU/z+Oqz6K/zrkSti5K7fgD6/hZpC4L3yRzH5u2EW2bllUSatIbTTS+rM8BxBRP
fRpUcu0rmqZISkqOKmPy4660exOw5z4/xu6NtYHtzqTn25sfcVVmxGWiajDmQ7dc
t326d4ULH5VTNACnYOzqBzgVp7+uYiSJDS7RuyHKnKfvACpy9T2ojFPj/e9BkzGc
mdDVlQFoGm/flpfpmpE03Q3UICSIYNfaIEXi3mLKREJc15hM/vCQMVhqrLvh7ome
gpUpdOFtAgMBAAECggEBAM4BGXMaV/CpU7R6wY7i0jubpH2AY6tMGWQu5CGgsKnZ
qN5VpQhKYI6QR0kM0Mg6oEqVzY+HT1X3athynciwf6ZUwFsBX467UGncRKbubEw5
HG0XZywoE5vUdS4MDcJ9BmUqRQw8vy5+REdo5QAFcahiqfdIP8HgJLtO4Aop5Kl/
HoLqR83q3vBHfidxTX2z4m05t6ucAbmqLAgAb2GzRHEvdCpSXvs7M9ZyR/rvdhSV
pswWR7XIUic50Lc8tHXyaKinuBFOCWCszsirPLAVPrs1D7Gq8kmdxUEEj0V9VbEE
8afsb9cCojrDISn814WwjX+zVwjRwyr3v3BLHVGu06ECgYEA+1VHUwBTUnHmnMR+
6XE1nkBStedvXGsMDIxK/VhNXAylUz4kfJ0bMPKdzbxSieHwA8O1+Hg4gN31V2Sn
RgT5P0sLGdideysoy8yR5Aiiwx+7EXGqSQltY2lpaykP9wvpznWi3k/Wd7dAaTCd
jPCtkzoLYMDzaQ9uc4A2VyY00RkCgYEA6D9PPvV6YE8S7G7sGwTSt9mgobZNm1AV
BjDmtEPfDSK59rT8PpoN+225c1qaIIODdH0DHK9ZbPzo/29tW1l9zgGjEXEw396v
Q9y99Ofh0JEsQbJJw/nPdV8dHKOL2ek3UWsscpsk5dUb+4gBpE+/wH21j7UiczKt
a8whmMFw+XUCgYAPYdHCr7NpyVTO5WvLB8W7UL5/KZH0Owz6u59fUAc0CgYYSSZc
hhUC8uZbkBoRHEXfRRwe/+SdZng8iAmAzI8go4wjYdGJl0Og7X1EUo77mDaPw8Aj
RjNusSXljBbRDOabXzG/n21F2G5VwcbyuEw3RYcqvcRn+qzM3tz0in8TCQKBgDe1
N+T6LOh9DyT3VlsExSakZQtlFyhyBRj/EdebkB0ufzzWHMtHWKM+poUs7ltuMFH4
yo5O4TxrTdg3ehu3U53edqbwZ7DLUW8Nu+LK3DeTGvKHOXpwqXqV3f3InPsgHczB
0F+NJ0SZ4aRr8zjeiDg77xkRcboAJej9hfGGNPshAoGALPS2HtT/1ycsER3a33NW
A8j/2TfovcjZ9u15q5KDLRZ+3UngLvVwPJO1j/uLPqyyRsQID7SE29KCj/E8kOZH
clbLXZmslyk369HOlpXZEXvR7rDxOt1jdojQrtEyW4gDT8k4iEw8nPcJyJ7YSVp/
Qa0OOCtQPPvBt0Be1bHTGek=
-----END PRIVATE KEY-----

View File

@ -1,51 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# OCS server configuration
#
server {
listen ${LISTEN_PORT} ${PORT_TYPE} default_server;
ssl_certificate /etc/nginx/certs/${SSL_CERT};
ssl_certificate_key /etc/nginx/certs/${SSL_KEY};
location / {
rewrite ^/$ /ocsreports permanent;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://ocsapplication;
}
location /ocsapi {
auth_basic "OCS Api area";
auth_basic_user_file /etc/nginx/auth/${API_AUTH_FILE};
proxy_pass http://ocsapplication/ocsapi;
}
location /download {
proxy_read_timeout ${READ_TIMEOUT};
proxy_connect_timeout ${CONNECT_TIMEOUT};
proxy_send_timeout ${SEND_TIMEOUT};
client_max_body_size ${MAX_BODY_SIZE};
proxy_pass http://ocsapplication/download;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,74 +0,0 @@
FROM ubuntu:22.04
ENV OCS_VERSION 2.12.2
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/* /tmp/conf/
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,391 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR OCS_DBI_PRINT_ERROR
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# ARP Scan bandwidth
PerlSetEnv OCS_OPT_SCAN_ARP_BANDWIDTH 256
# IpDiscover scan type
PerlSetEnv OCS_OPT_SCAN_TYPE_IPDISCOVER ICMP
# Link TAG to network entry
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# SNMP Scan Type
PerlSetEnv OCS_OPT_SCAN_TYPE_SNMP ICMP
# SNMP Generate files
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES_SNMP 0
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,87 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.12.2
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
- "profilesconfdata:/usr/share/ocsinventory-reports/ocsreports/config/profiles"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
OCS_DBI_PRINT_ERROR: 0
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:
profilesconfdata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,49 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/OCS_DBI_PRINT_ERROR/'"$OCS_DBI_PRINT_ERROR"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

View File

@ -1 +0,0 @@
ocsapi:$apr1$BcAk5f/A$0O5c/DSy92/o.vpwwshWQ.

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDlzCCAn+gAwIBAgIUZq+XFJryUuBpkwebSwjSy/hfMCkwDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLbXlvY3NzZXJ2ZXIw
HhcNMjIwNDEzMDk0OTUzWhcNMzIwNDEwMDk0OTUzWjBbMQswCQYDVQQGEwJGUjET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMRQwEgYDVQQDDAtteW9jc3NlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOQDcGzmYzzgVycXSEZWMJ2TEtnmjouNuUKAVQUcELMkZOk0
TIRz7QhPIOCiH2bklji+ByyVZg/uXRFJlT/P46rPor/OuRK2Lkrt+APr+FmkLgvf
JHMfm7YRbZuWVRJq0htNNL6szwHEFE99GlRy7SuapkhKSo4qY/LjrrR7E7DnPj/G
7o21ge3OpOfbmx9xVWbEZaJqMOZDt1y3fbp3hQsflVM0AKdg7OoHOBWnv65iJIkN
LtG7Icqcp+8AKnL1PaiMU+P970GTMZyZ0NWVAWgab9+Wl+makTTdDdQgJIhg19og
ReLeYspEQlzXmEz+8JAxWGqsu+HuiZ6ClSl04W0CAwEAAaNTMFEwHQYDVR0OBBYE
FEljOkF7g17RD+pOpJ7M6dovwI9uMB8GA1UdIwQYMBaAFEljOkF7g17RD+pOpJ7M
6dovwI9uMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKA2Fcot
58X97tsLWC6eJrF2MLJzcNeSiiJayG9bT8agsUE8WGq5fvHvf5E54tueCp/q+a7V
k4ZowCJF3RAvAqzRkMLQWaGms0Brz4qRtVvRqhWkP7aMGhUieOS2rTfLZ+TYPKfK
561w8gSpxs9uRXbhnYeUchxJxCUg0CbxQwsjltrvnOF2LVP6JJDtYcc/NiDXhP4W
pTp+EdwXt87VSRkTrqjEQO7/3TMsNjhi0PMFHnQf47ijLt44XaNGKh9pY31Ae9oo
6IuRygJc6QNVoGRmF2bxsorU4i4rA3kR2Ir9AUbxJT6MtuLtx8DGB8Dmp6bKmIv+
HZH21wRRhwrYJb8=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkA3Bs5mM84Fcn
F0hGVjCdkxLZ5o6LjblCgFUFHBCzJGTpNEyEc+0ITyDgoh9m5JY4vgcslWYP7l0R
SZU/z+Oqz6K/zrkSti5K7fgD6/hZpC4L3yRzH5u2EW2bllUSatIbTTS+rM8BxBRP
fRpUcu0rmqZISkqOKmPy4660exOw5z4/xu6NtYHtzqTn25sfcVVmxGWiajDmQ7dc
t326d4ULH5VTNACnYOzqBzgVp7+uYiSJDS7RuyHKnKfvACpy9T2ojFPj/e9BkzGc
mdDVlQFoGm/flpfpmpE03Q3UICSIYNfaIEXi3mLKREJc15hM/vCQMVhqrLvh7ome
gpUpdOFtAgMBAAECggEBAM4BGXMaV/CpU7R6wY7i0jubpH2AY6tMGWQu5CGgsKnZ
qN5VpQhKYI6QR0kM0Mg6oEqVzY+HT1X3athynciwf6ZUwFsBX467UGncRKbubEw5
HG0XZywoE5vUdS4MDcJ9BmUqRQw8vy5+REdo5QAFcahiqfdIP8HgJLtO4Aop5Kl/
HoLqR83q3vBHfidxTX2z4m05t6ucAbmqLAgAb2GzRHEvdCpSXvs7M9ZyR/rvdhSV
pswWR7XIUic50Lc8tHXyaKinuBFOCWCszsirPLAVPrs1D7Gq8kmdxUEEj0V9VbEE
8afsb9cCojrDISn814WwjX+zVwjRwyr3v3BLHVGu06ECgYEA+1VHUwBTUnHmnMR+
6XE1nkBStedvXGsMDIxK/VhNXAylUz4kfJ0bMPKdzbxSieHwA8O1+Hg4gN31V2Sn
RgT5P0sLGdideysoy8yR5Aiiwx+7EXGqSQltY2lpaykP9wvpznWi3k/Wd7dAaTCd
jPCtkzoLYMDzaQ9uc4A2VyY00RkCgYEA6D9PPvV6YE8S7G7sGwTSt9mgobZNm1AV
BjDmtEPfDSK59rT8PpoN+225c1qaIIODdH0DHK9ZbPzo/29tW1l9zgGjEXEw396v
Q9y99Ofh0JEsQbJJw/nPdV8dHKOL2ek3UWsscpsk5dUb+4gBpE+/wH21j7UiczKt
a8whmMFw+XUCgYAPYdHCr7NpyVTO5WvLB8W7UL5/KZH0Owz6u59fUAc0CgYYSSZc
hhUC8uZbkBoRHEXfRRwe/+SdZng8iAmAzI8go4wjYdGJl0Og7X1EUo77mDaPw8Aj
RjNusSXljBbRDOabXzG/n21F2G5VwcbyuEw3RYcqvcRn+qzM3tz0in8TCQKBgDe1
N+T6LOh9DyT3VlsExSakZQtlFyhyBRj/EdebkB0ufzzWHMtHWKM+poUs7ltuMFH4
yo5O4TxrTdg3ehu3U53edqbwZ7DLUW8Nu+LK3DeTGvKHOXpwqXqV3f3InPsgHczB
0F+NJ0SZ4aRr8zjeiDg77xkRcboAJej9hfGGNPshAoGALPS2HtT/1ycsER3a33NW
A8j/2TfovcjZ9u15q5KDLRZ+3UngLvVwPJO1j/uLPqyyRsQID7SE29KCj/E8kOZH
clbLXZmslyk369HOlpXZEXvR7rDxOt1jdojQrtEyW4gDT8k4iEw8nPcJyJ7YSVp/
Qa0OOCtQPPvBt0Be1bHTGek=
-----END PRIVATE KEY-----

View File

@ -1,51 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# OCS server configuration
#
server {
listen ${LISTEN_PORT} ${PORT_TYPE} default_server;
ssl_certificate /etc/nginx/certs/${SSL_CERT};
ssl_certificate_key /etc/nginx/certs/${SSL_KEY};
location / {
rewrite ^/$ /ocsreports permanent;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://ocsapplication;
}
location /ocsapi {
auth_basic "OCS Api area";
auth_basic_user_file /etc/nginx/auth/${API_AUTH_FILE};
proxy_pass http://ocsapplication/ocsapi;
}
location /download {
proxy_read_timeout ${READ_TIMEOUT};
proxy_connect_timeout ${CONNECT_TIMEOUT};
proxy_send_timeout ${SEND_TIMEOUT};
client_max_body_size ${MAX_BODY_SIZE};
proxy_pass http://ocsapplication/download;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,74 +0,0 @@
FROM ubuntu:24.04
ENV OCS_VERSION 2.12.3
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/* /tmp/conf/
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,391 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR OCS_DBI_PRINT_ERROR
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# ARP Scan bandwidth
PerlSetEnv OCS_OPT_SCAN_ARP_BANDWIDTH 256
# IpDiscover scan type
PerlSetEnv OCS_OPT_SCAN_TYPE_IPDISCOVER ICMP
# Link TAG to network entry
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# SNMP Scan Type
PerlSetEnv OCS_OPT_SCAN_TYPE_SNMP ICMP
# SNMP Generate files
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES_SNMP 0
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,95 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.12.3
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
- "profilesconfdata:/usr/share/ocsinventory-reports/ocsreports/config/profiles"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
OCS_DBI_PRINT_ERROR: 0
# Define the auth type :
# 1 : Local Only
# 2 : Local and LDAP
# 3 : LDAP Only
# 4 : LDAP with SSO
# 5 : Always OK, won't ask for user and password
# 6 : CAS authentication
AUTH_TYPE: 1
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:
profilesconfdata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,52 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/OCS_DBI_PRINT_ERROR/'"$OCS_DBI_PRINT_ERROR"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Quick fix https://github.com/OCSInventory-NG/OCSInventory-Docker-Stack/issues/16
sed -i 's/^.*PerlSetEnv OCS_OPT_DBI_PRINT_ERROR.*$/PerlSetEnv OCS_OPT_DBI_PRINT_ERROR 0/' ${SRV_CONF_FILE}
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,11 +0,0 @@
#!/bin/bash
VAR_FILE=${OCS_WEBCONSOLE_DIR}/ocsreports/var.php
if [ -f ${VAR_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing OCS Console AUTHTYPE... |"
echo "+-----------------------------------------------+"
echo
sed -ri -e "/AUTH_TYPE/c\define('AUTH_TYPE', $AUTH_TYPE);" ${VAR_FILE}
fi

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

View File

@ -1 +0,0 @@
ocsapi:$apr1$BcAk5f/A$0O5c/DSy92/o.vpwwshWQ.

View File

@ -1,22 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDlzCCAn+gAwIBAgIUZq+XFJryUuBpkwebSwjSy/hfMCkwDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEUMBIGA1UEAwwLbXlvY3NzZXJ2ZXIw
HhcNMjIwNDEzMDk0OTUzWhcNMzIwNDEwMDk0OTUzWjBbMQswCQYDVQQGEwJGUjET
MBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQ
dHkgTHRkMRQwEgYDVQQDDAtteW9jc3NlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAOQDcGzmYzzgVycXSEZWMJ2TEtnmjouNuUKAVQUcELMkZOk0
TIRz7QhPIOCiH2bklji+ByyVZg/uXRFJlT/P46rPor/OuRK2Lkrt+APr+FmkLgvf
JHMfm7YRbZuWVRJq0htNNL6szwHEFE99GlRy7SuapkhKSo4qY/LjrrR7E7DnPj/G
7o21ge3OpOfbmx9xVWbEZaJqMOZDt1y3fbp3hQsflVM0AKdg7OoHOBWnv65iJIkN
LtG7Icqcp+8AKnL1PaiMU+P970GTMZyZ0NWVAWgab9+Wl+makTTdDdQgJIhg19og
ReLeYspEQlzXmEz+8JAxWGqsu+HuiZ6ClSl04W0CAwEAAaNTMFEwHQYDVR0OBBYE
FEljOkF7g17RD+pOpJ7M6dovwI9uMB8GA1UdIwQYMBaAFEljOkF7g17RD+pOpJ7M
6dovwI9uMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAKA2Fcot
58X97tsLWC6eJrF2MLJzcNeSiiJayG9bT8agsUE8WGq5fvHvf5E54tueCp/q+a7V
k4ZowCJF3RAvAqzRkMLQWaGms0Brz4qRtVvRqhWkP7aMGhUieOS2rTfLZ+TYPKfK
561w8gSpxs9uRXbhnYeUchxJxCUg0CbxQwsjltrvnOF2LVP6JJDtYcc/NiDXhP4W
pTp+EdwXt87VSRkTrqjEQO7/3TMsNjhi0PMFHnQf47ijLt44XaNGKh9pY31Ae9oo
6IuRygJc6QNVoGRmF2bxsorU4i4rA3kR2Ir9AUbxJT6MtuLtx8DGB8Dmp6bKmIv+
HZH21wRRhwrYJb8=
-----END CERTIFICATE-----

View File

@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDkA3Bs5mM84Fcn
F0hGVjCdkxLZ5o6LjblCgFUFHBCzJGTpNEyEc+0ITyDgoh9m5JY4vgcslWYP7l0R
SZU/z+Oqz6K/zrkSti5K7fgD6/hZpC4L3yRzH5u2EW2bllUSatIbTTS+rM8BxBRP
fRpUcu0rmqZISkqOKmPy4660exOw5z4/xu6NtYHtzqTn25sfcVVmxGWiajDmQ7dc
t326d4ULH5VTNACnYOzqBzgVp7+uYiSJDS7RuyHKnKfvACpy9T2ojFPj/e9BkzGc
mdDVlQFoGm/flpfpmpE03Q3UICSIYNfaIEXi3mLKREJc15hM/vCQMVhqrLvh7ome
gpUpdOFtAgMBAAECggEBAM4BGXMaV/CpU7R6wY7i0jubpH2AY6tMGWQu5CGgsKnZ
qN5VpQhKYI6QR0kM0Mg6oEqVzY+HT1X3athynciwf6ZUwFsBX467UGncRKbubEw5
HG0XZywoE5vUdS4MDcJ9BmUqRQw8vy5+REdo5QAFcahiqfdIP8HgJLtO4Aop5Kl/
HoLqR83q3vBHfidxTX2z4m05t6ucAbmqLAgAb2GzRHEvdCpSXvs7M9ZyR/rvdhSV
pswWR7XIUic50Lc8tHXyaKinuBFOCWCszsirPLAVPrs1D7Gq8kmdxUEEj0V9VbEE
8afsb9cCojrDISn814WwjX+zVwjRwyr3v3BLHVGu06ECgYEA+1VHUwBTUnHmnMR+
6XE1nkBStedvXGsMDIxK/VhNXAylUz4kfJ0bMPKdzbxSieHwA8O1+Hg4gN31V2Sn
RgT5P0sLGdideysoy8yR5Aiiwx+7EXGqSQltY2lpaykP9wvpznWi3k/Wd7dAaTCd
jPCtkzoLYMDzaQ9uc4A2VyY00RkCgYEA6D9PPvV6YE8S7G7sGwTSt9mgobZNm1AV
BjDmtEPfDSK59rT8PpoN+225c1qaIIODdH0DHK9ZbPzo/29tW1l9zgGjEXEw396v
Q9y99Ofh0JEsQbJJw/nPdV8dHKOL2ek3UWsscpsk5dUb+4gBpE+/wH21j7UiczKt
a8whmMFw+XUCgYAPYdHCr7NpyVTO5WvLB8W7UL5/KZH0Owz6u59fUAc0CgYYSSZc
hhUC8uZbkBoRHEXfRRwe/+SdZng8iAmAzI8go4wjYdGJl0Og7X1EUo77mDaPw8Aj
RjNusSXljBbRDOabXzG/n21F2G5VwcbyuEw3RYcqvcRn+qzM3tz0in8TCQKBgDe1
N+T6LOh9DyT3VlsExSakZQtlFyhyBRj/EdebkB0ufzzWHMtHWKM+poUs7ltuMFH4
yo5O4TxrTdg3ehu3U53edqbwZ7DLUW8Nu+LK3DeTGvKHOXpwqXqV3f3InPsgHczB
0F+NJ0SZ4aRr8zjeiDg77xkRcboAJej9hfGGNPshAoGALPS2HtT/1ycsER3a33NW
A8j/2TfovcjZ9u15q5KDLRZ+3UngLvVwPJO1j/uLPqyyRsQID7SE29KCj/E8kOZH
clbLXZmslyk369HOlpXZEXvR7rDxOt1jdojQrtEyW4gDT8k4iEw8nPcJyJ7YSVp/
Qa0OOCtQPPvBt0Be1bHTGek=
-----END PRIVATE KEY-----

View File

@ -1,51 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# OCS server configuration
#
server {
listen ${LISTEN_PORT} ${PORT_TYPE} default_server;
ssl_certificate /etc/nginx/certs/${SSL_CERT};
ssl_certificate_key /etc/nginx/certs/${SSL_KEY};
location / {
rewrite ^/$ /ocsreports permanent;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://ocsapplication;
}
location /ocsapi {
auth_basic "OCS Api area";
auth_basic_user_file /etc/nginx/auth/${API_AUTH_FILE};
proxy_pass http://ocsapplication/ocsapi;
}
location /download {
proxy_read_timeout ${READ_TIMEOUT};
proxy_connect_timeout ${CONNECT_TIMEOUT};
proxy_send_timeout ${SEND_TIMEOUT};
client_max_body_size ${MAX_BODY_SIZE};
proxy_pass http://ocsapplication/download;
}
}

File diff suppressed because one or more lines are too long

View File

@ -1,74 +0,0 @@
FROM ubuntu:22.04
ENV OCS_VERSION 2.12.0
LABEL maintainer="contact@ocsinventory-ng.org" \
version="${OCS_VERSION}" \
description="OCS Inventory docker image"
ARG APT_FLAGS="-y"
ENV APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data \
APACHE_LOG_DIR=/var/log/apache2 APACHE_PID_FILE=/var/run/apache2/apache2.pid APACHE_RUN_DIR=/var/run/apache2 APACHE_LOCK_DIR=/var/lock/apache2 \
OCS_DB_SERVER=dbsrv OCS_DB_PORT=3306 OCS_DB_USER=ocs OCS_DB_PASS=ocs OCS_DB_NAME=ocsweb \
OCS_LOG_DIR=/var/log/ocsinventory-server OCS_VARLIB_DIR=/var/lib/ocsinventory-reports/ OCS_WEBCONSOLE_DIR=/usr/share/ocsinventory-reports \
OCS_PERLEXT_DIR=/etc/ocsinventory-server/perl/ OCS_PLUGINSEXT_DIR=/etc/ocsinventory-server/plugins/ \
OCS_SSL_ENABLED=0 OCS_SSL_WEB_MODE=DISABLED OCS_SSL_COM_MODE=DISABLED OCS_SSL_KEY=/path/to/key OCS_SSL_CERT=/path/to/cert OCS_SSL_CA=/path/to/ca \
TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /var/lib/ocsinventory-reports /etc/ocsinventory-server /usr/share/ocsinventory-reports/ocsreports/extensions
RUN apt-get update && apt-get install -y \
wget \
curl \
make \
perl \
apache2 \
php \
libxml-simple-perl \
libdbi-perl \
libdbd-mysql-perl \
libapache-dbi-perl \
libnet-ip-perl \
libsoap-lite-perl \
libarchive-zip-perl \
libswitch-perl \
libmojolicious-perl \
libplack-perl \
build-essential \
php-pclzip \
php-mbstring \
php-soap \
php-mysql \
php-curl \
php-xml \
php-zip \
php-gd \
php-ldap
RUN wget https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/${OCS_VERSION}/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -P /tmp && \
tar xzf /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}.tar.gz -C /tmp;
RUN cd /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Apache/ && \
perl Makefile.PL && \
make && \
make install
WORKDIR /etc/apache2/conf-available
# Redirect Apache2 Logs to stdout e stderr
RUN ln -sf /proc/self/fd/1 /var/log/apache2/access.log && \
ln -sf /proc/self/fd/2 /var/log/apache2/error.log
COPY conf/ /tmp/conf
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
COPY ./docker-entrypoint.d /docker-entrypoint.d
EXPOSE 80
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/apache2", "-DFOREGROUND"]

View File

@ -1,34 +0,0 @@
<?php
/*
* Copyright 2005-2016 OCSInventory-NG/OCSInventory-ocsreports contributors.
* See the Contributors file for more details about them.
*
* This file is part of OCSInventory-NG/OCSInventory-ocsreports.
*
* OCSInventory-NG/OCSInventory-ocsreports is free software: you can redistribute
* it and/or modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the License,
* or (at your option) any later version.
*
* OCSInventory-NG/OCSInventory-ocsreports is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OCSInventory-NG/OCSInventory-ocsreports. if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/
define("DB_NAME", "OCS_DB_NAME");
define("SERVER_READ", "OCS_READ_NAME");
define("SERVER_WRITE", "OCS_WRITE_NAME");
define("SERVER_PORT", "OCS_DB_PORT");
define("COMPTE_BASE", "OCS_DB_USER");
define("PSWD_BASE", "OCS_DB_PASS");
define("ENABLE_SSL","OCS_SSL_ENABLED");
define("SSL_MODE","OCS_SSL_WEB_MODE");
define("SSL_KEY","OCS_SSL_KEY");
define("SSL_CERT","OCS_SSL_CERT");
define("CA_CERT","OCS_SSL_CA");
?>

View File

@ -1,120 +0,0 @@
################################################################################
#
# OCS Inventory NG Administration Server
#
# Copyleft 2008 OCS Inventory NG Team
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
#
# ANY CHANGE ON THIS FILE REQUIRES APACHE RESTART TO TAKE EFFECT
#
################################################################################
# Administration console public pages
#
# Alias used to put Administration Server static page (typically PHP) outside
# Apache document root directory
#
Alias OCSREPORTS_ALIAS PATH_TO_OCSREPORTS_DIR
<Directory PATH_TO_OCSREPORTS_DIR>
# By default, users can use console from everywhere
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
Options Indexes FollowSymLinks
DirectoryIndex index.php
AllowOverride Options AuthConfig
# Uncomment following to force use of HTTPS in Administration Server
#SSLRequireSSL
# PHP tuning (not working on all distribution, use php.ini instead)
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Duplicate for php7 compatibility
<IfModule mod_php7.c>
AddType application/x-httpd-php .php
php_flag file_uploads on
# Some PHP tuning for deployment feature up to 8 MB
# post_max_size must be greater than upload_max_filesize
# because of HTTP headers
php_value post_max_size 101m
php_value upload_max_filesize 100m
# You may have to uncomment following on errors
#php_value max_execution_time -1
#php_value max_input_time -1
# Uncomment following if you need to specify a mysql socket
#php_value mysql.default_socket "path/to/mysql/unix/socket"
#!! Mandatory !! : set magic_quotes_gpc to off (to make ocsreports works correctly)
php_flag magic_quotes_gpc off
</IfModule>
# Uncomment following to allow HTTP body request up to 4 MB
# instead default 512 KB
#LimitRequestBody 4194304
</Directory>
################################################################################
# Deployment packages download area
#
# Alias to put Deployment package files outside Apache document root directory
#
<Directory PATH_TO_PACKAGES_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias PACKAGES_ALIAS PATH_TO_PACKAGES_DIR
################################################################################
# Snmp communities area
#
# Alias to put Snmp custom Mibs files outside Apache document root directory
#
<Directory PATH_TO_SNMP_DIR>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
</Directory>
Alias SNMP_ALIAS PATH_TO_SNMP_DIR

View File

@ -1,23 +0,0 @@
PerlOptions +Parent
<Perl>
$ENV{PLACK_ENV} = 'production';
$ENV{MOJO_HOME} = 'REST_API_PATH';
$ENV{MOJO_MODE} = 'deployment';
$ENV{OCS_DB_HOST} = 'DATABASE_SERVER';
$ENV{OCS_DB_PORT} = 'DATABASE_PORT';
$ENV{OCS_DB_LOCAL} = 'DATABASE_NAME';
$ENV{OCS_DB_USER} = 'DATABASE_USER';
$ENV{OCS_DB_PWD} = 'DATABASE_PASSWD';
$ENV{OCS_DB_SSL_ENABLED} = OCS_SSL_ENABLED;
# $ENV{OCS_DB_SSL_CLIENT_KEY} = '';
# $ENV{OCS_DB_SSL_CLIENT_CERT} = '';
# $ENV{OCS_DB_SSL_CA_CERT} = '';
$ENV{OCS_DB_SSL_MODE} = 'SSL_MODE_PREFERRED';
</Perl>
<Location /ocsapi>
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app 'REST_API_LOADER_PATH'
</Location>

View File

@ -1,383 +0,0 @@
################################################################################
#
# OCS Inventory NG Communication Server Perl Module Setup
#
# Copyleft 2006 Pascal DANEK
# Web: http://www.ocsinventory-ng.org
#
# This code is open source and may be copied and modified as long as the source
# code is always made freely available.
# Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
################################################################################
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace VERSION_MP by 1
# For mod_perl > 1.999_21, replace VERSION_MP by 2
PerlSetEnv OCS_MODPERL_VERSION VERSION_MP
# Master Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT DATABASE_PORT
# Name of database
PerlSetEnv OCS_DB_NAME DATABASE_NAME
PerlSetEnv OCS_DB_LOCAL DATABASE_NAME
# User allowed to connect to database
PerlSetEnv OCS_DB_USER DATABASE_USER
# Password for user
PerlSetVar OCS_DB_PWD DATABASE_PASSWD
# SSL Configuration
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
PerlSetEnv OCS_DB_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
PerlSetEnv OCS_DB_SSL_MODE SSL_MODE_PREFERRED
# Slave Database settings
# Replace DATABASE_SERVER by hostname or ip of MySQL server for READ
# Useful if you handle mysql slave databases
# PerlSetEnv OCS_DB_SL_HOST DATABASE_SERVER
# Replace DATABASE_PORT by port where running MySQL server, generally 3306
# PerlSetEnv OCS_DB_SL_PORT_SLAVE DATABASE_PORT
# User allowed to connect to database
# PerlSetEnv OCS_DB_SL_USER ocs
# Name of the database
# PerlSetEnv OCS_DB_SL_NAME ocsweb
# Password for user
# PerlSetVar OCS_DB_SL_PWD ocs
# SSL Configuration for Slave database
# 0 to disable the SSL support for MySQL/MariaDB
# 1 to enable the SSL support for MySQL/MariaDB
# PerlSetEnv OCS_DB_SL_SSL_ENABLED 0
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_KEY /etc/ssl/private/client.key
# PerlSetEnv OCS_DB_SL_SSL_CLIENT_CERT /etc/ssl/certs/client.crt
# PerlSetEnv OCS_DB_SL_SSL_CA_CERT /etc/ssl/certs/ca.crt
# SSL Mode
# - SSL_MODE_PREFERRED (SSL enabled but optional)
# - SSL_MODE_REQUIRED (SSL enabled, mandatory but don't verify server certificate. Ex self signed cert)
# - SSL_MODE_STRICT (SSL enabled, mandatory and server cert must be trusted)
# PerlSetEnv OCS_DB_SL_SSL_MODE SSL_MODE_PREFERRED
# Path to log directory (must be writeable)
PerlSetEnv OCS_OPT_LOGPATH "PATH_TO_LOG_DIRECTORY"
# If you need to specify a mysql socket that the client's built-in
#PerlSetEnv OCS_OPT_DBI_MYSQL_SOCKET "path/to/mysql/unix/socket"
# DBI verbosity
PerlSetEnv OCS_OPT_DBI_PRINT_ERROR 0
# Unicode support
PerlSetEnv OCS_OPT_UNICODE_SUPPORT 1
# If you are using a multi server architecture,
# Put the ip addresses of the slaves on the master
# (This is read as perl regular expressions)
PerlAddVar OCS_OPT_TRUSTED_IP 127.0.0.1
#PerlAddVar OCS_OPT_TRUSTED_IP XXX.XXX.XXX.XXX
# ===== WEB SERVICE (SOAP) SETTINGS =====
PerlSetEnv OCS_OPT_WEB_SERVICE_ENABLED 0
PerlSetEnv OCS_OPT_WEB_SERVICE_RESULTS_LIMIT 100
# PerlSetEnv OCS_OPT_WEB_SERVICE_PRIV_MODS_CONF "WEBSERV_PRIV_MOD_CONF_FILE"
# Be careful: you must restart apache to make settings taking effects
# Configure engine to use the settings from this file
PerlSetEnv OCS_OPT_OPTIONS_NOT_OVERLOADED 0
# Try to use other compress algorithm than raw zlib
# GUNZIP and clear XML are supported
PerlSetEnv OCS_OPT_COMPRESS_TRY_OTHERS 1
##############################################################
# ===== OPTIONS BELOW ARE OVERLOADED IF YOU USE OCS GUI =====#
##############################################################
# NOTE: IF YOU WANT TO USE THIS CONFIG FILE INSTEAD, set OCS_OPT_OPTIONS_NOT_OVERLOADED to '1'
# ===== MAIN SETTINGS =====
# Enable engine logs (see LOGPATH setting)
PerlSetEnv OCS_OPT_LOGLEVEL 0
# Specify agent's prolog frequency
PerlSetEnv OCS_OPT_PROLOG_FREQ 12
# Specify if agent take contact on service startup
PerlSetEnv OCS_OPT_INVENTORY_ON_STARTUP 0
# Configure the duplicates detection system
PerlSetEnv OCS_OPT_AUTO_DUPLICATE_LVL 15
# Futur security improvements
PerlSetEnv OCS_OPT_SECURITY_LEVEL 0
# Validity of a computer's lock
PerlSetEnv OCS_OPT_LOCK_REUSE_TIME 600
# Enable the history tracking system (useful for external data synchronisation
PerlSetEnv OCS_OPT_TRACE_DELETED 0
# ===== INVENTORY SETTINGS =====
# Specify the validity of inventory data
PerlSetEnv OCS_OPT_FREQUENCY 0
# Configure engine to update inventory regarding to CHECKSUM agent value (lower DB backend load)
PerlSetEnv OCS_OPT_INVENTORY_DIFF 1
# Make engine consider an inventory as a transaction (lower concurency, better disk usage)
PerlSetEnv OCS_OPT_INVENTORY_TRANSACTION 1
# Configure engine to make a differential update of inventory sections (row level). Lower DB backend load, higher frontend load
PerlSetEnv OCS_OPT_INVENTORY_WRITE_DIFF 1
# Enable some stuff to improve DB queries, especially for GUI multicriteria searching system
PerlSetEnv OCS_OPT_INVENTORY_CACHE_ENABLED 1
# Specify when the engine will clean the inventory cache structures
PerlSetEnv OCS_OPT_INVENTORY_CACHE_REVALIDATE 7
# Enable you to keep trace of every elements encountered in db life
PerlSetEnv OCS_OPT_INVENTORY_CACHE_KEEP 1
# ===== SOFTWARES DEPLOYMENT SETTINGS =====
# Enable this feature
PerlSetEnv OCS_OPT_DOWNLOAD 0
# Package which have a priority superior than this value will not be downloaded
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LENGTH 10
# Time between two download cycles (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_CYCLE_LATENCY 60
# Time between two fragment downloads (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_FRAG_LATENCY 60
# Specify if you want to track packages affected to a group on computer's level
PerlSetEnv OCS_OPT_DOWNLOAD_GROUPS_TRACE_EVENTS 1
# Time between two download periods (bandwidth control)
PerlSetEnv OCS_OPT_DOWNLOAD_PERIOD_LATENCY 60
# Agents will send ERR_TIMEOUT event and clean the package it is older than this setting
PerlSetEnv OCS_OPT_DOWNLOAD_TIMEOUT 7
# Agents will send an error event and clean the package if package command does not respond during this setting
PerlSetEnv OCS_OPT_DOWNLOAD_EXECUTION_TIMEOUT 120
# Enable ocs engine to deliver agent's files (deprecated)
PerlSetEnv OCS_OPT_DEPLOY 0
# Enable the softwares deployment capacity (bandwidth control)
# ===== GROUPS SETTINGS =====
# Enable the computer\s groups feature
PerlSetEnv OCS_OPT_ENABLE_GROUPS 1
# Random number computed in the defined range. Designed to avoid computing many groups in the same process
PerlSetEnv OCS_OPT_GROUPS_CACHE_OFFSET 43200
# Specify the validity of computer's groups (default: compute it once a day - see offset)
PerlSetEnv OCS_OPT_GROUPS_CACHE_REVALIDATE 43200
# ===== IPDISCOVER SETTINGS =====
# Specify how much agent per LAN will discovered connected peripherals (0 to disable)
PerlSetEnv OCS_OPT_IPDISCOVER 2
# Specify the minimal difference to replace an ipdiscover agent
PerlSetEnv OCS_OPT_IPDISCOVER_BETTER_THRESHOLD 1
# Time between 2 arp requests (mini: 10 ms)
PerlSetEnv OCS_OPT_IPDISCOVER_LATENCY 100
# Specify when to remove a computer when it has not come until this period
PerlSetEnv OCS_OPT_IPDISCOVER_MAX_ALIVE 14
# Disable the time before a first election (not recommended)
PerlSetEnv OCS_OPT_IPDISCOVER_NO_POSTPONE 0
# Enable groups for ipdiscover (for example, you might want to prevent some groups to be ipdiscover agents)
PerlSetEnv OCS_OPT_IPDISCOVER_USE_GROUPS 1
# Link ipdiscover network to computer TAG
PerlSetEnv OCS_OPT_IPDISCOVER_LINK_TAG_NETWORK 0
# ===== INVENTORY FILES MAPPING SETTINGS =====
# Use with ocsinventory-injector, enable the multi entities feature
PerlSetEnv OCS_OPT_GENERATE_OCS_FILES 0
# Generate either compressed file or clear XML text
PerlSetEnv OCS_OPT_OCS_FILES_FORMAT OCS
# Specify if you want to keep trace of all inventory between to synchronisation with the higher level server
PerlSetEnv OCS_OPT_OCS_FILES_OVERWRITE 0
# Path to ocs files directory (must be writeable)
PerlSetEnv OCS_OPT_OCS_FILES_PATH /tmp
# ===== FILTER SETTINGS =====
# Enable prolog filter stack
PerlSetEnv OCS_OPT_PROLOG_FILTER_ON 0
# Enable core filter system to modify some things "on the fly"
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ENABLED 0
# Enable inventory flooding filter. A dedicated ipaddress ia allowed to send a new computer only once in this period
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP 0
# Period definition for INVENTORY_FILTER_FLOOD_IP
PerlSetEnv OCS_OPT_INVENTORY_FILTER_FLOOD_IP_CACHE_TIME 300
# Enable inventory filter stack
PerlSetEnv OCS_OPT_INVENTORY_FILTER_ON 0
# ===== DATA FILTER =====
#Enable the dat filtering capacity
PerlSetEnv OCS_OPT_DATA_FILTER 0
# Set the table names and the field associated you want to filter
#PerlAddVar OCS_OPT_DATA_TO_FILTER HARDWARE
#PerlAddVar OCS_OPT_DATA_TO_FILTER USERID
# ===== REGISTRY SETTINGS =====
# Enable the registry capacity
PerlSetEnv OCS_OPT_REGISTRY 1
# ===== SNMP SETTINGS =====
# Enable the SNMP capacity
PerlSetEnv OCS_OPT_SNMP 0
# Configure engine to update snmp inventory regarding to snmp_laststate table (lower DB backend load)
PerlSetEnv OCS_OPT_SNMP_INVENTORY_DIFF 1
# Display error message about agent https communication in logfile
PerlSetEnv OCS_OPT_SNMP_PRINT_HTTPS_ERROR 1
# ===== SESSION SETTINGS =====
# Not yet in GUI
# Validity of a session (prolog=>postinventory)
PerlSetEnv OCS_OPT_SESSION_VALIDITY_TIME 600
# Consider a session obsolete if it is older thant this value
PerlSetEnv OCS_OPT_SESSION_CLEAN_TIME 86400
# Accept an inventory only if required by server
#( Refuse "forced" inventory)
PerlSetEnv OCS_OPT_INVENTORY_SESSION_ONLY 0
# ===== TAG =====
# The default behavior of the server is to ignore TAG changes from the
# agent.
PerlSetEnv OCS_OPT_ACCEPT_TAG_UPDATE_FROM_CLIENT 0
# ===== EXTERNAL USERAGENTS =====
#Path for external useragents reference file
#!! WARNING !! : external agents may not be supported by OCS NG Community !
#PerlSetEnv OCS_OPT_EXT_USERAGENTS_FILE_PATH /tmp/yourfile.txt
# ===== PLUGINS =====
PerlSetEnv OCS_PLUGINS_PERL_DIR "PATH_TO_PLUGINS_PERL_DIRECTORY"
PerlSetEnv OCS_PLUGINS_CONF_DIR "PATH_TO_PLUGINS_CONFIG_DIRECTORY"
# ===== DEPRECATED =====
# Set the proxy cache validity in http headers when sending a file
PerlSetEnv OCS_OPT_PROXY_REVALIDATE_DELAY 3600
# Deprecated
PerlSetEnv OCS_OPT_UPDATE 0
############ DO NOT MODIFY BELOW ! #######################
# External modules
PerlModule Apache::DBI
PerlModule Compress::Zlib
PerlModule XML::Simple
# Ocs plugins
PerlModule Apache::Ocsinventory::Plugins
# Ocs
PerlModule Apache::Ocsinventory
PerlModule Apache::Ocsinventory::Server::Constants
PerlModule Apache::Ocsinventory::Server::System
PerlModule Apache::Ocsinventory::Server::Communication
PerlModule Apache::Ocsinventory::Server::Inventory
PerlModule Apache::Ocsinventory::Server::Duplicate
# Capacities
PerlModule Apache::Ocsinventory::Server::Capacities::Registry
PerlModule Apache::Ocsinventory::Server::Capacities::Update
PerlModule Apache::Ocsinventory::Server::Capacities::Ipdiscover
PerlModule Apache::Ocsinventory::Server::Capacities::Download
PerlModule Apache::Ocsinventory::Server::Capacities::Notify
PerlModule Apache::Ocsinventory::Server::Capacities::Snmp
# This module guides you through the module creation
# PerlModule Apache::Ocsinventory::Server::Capacities::Example
# This module adds some rules to filter some request sent to ocs server in the prolog and inventory stages
# PerlModule Apache::Ocsinventory::Server::Capacities::Filter
# This module add availibity to filter data from HARDWARE section (data filtered won't be stored in database)
# PerlModule Apache::Ocsinventory::Server::Capacities::Datafilter
# PerlTaintCheck On
# SSL apache settings
#SSLEngine "SSL_ENABLE"
#SSLCertificateFile "SSL_CERTIFICATE_FILE"
#SSLCertificateKeyFile "SSL_CERTIFICATE_KEY_FILE"
#SSLCACertificateFile "SSL_CERTIFICATE_FILE"
#SSLCACertificatePath "SSL_CERTIFICATE_PATH"
#SSLVerifyClient "SSL_VALIDATE_CLIENT"
# Engine apache settings
# "Virtual" directory for handling OCS Inventory NG agents communications
# Be careful, do not create such directory into your web server root document !
<Location /ocsinventory>
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from all
</IfModule>
# If you protect this area you have to deal with http_auth_* agent's parameters
# AuthType Basic
# AuthName "OCS Inventory agent area"
# AuthUserFile "APACHE_AUTH_USER_FILE"
# require valid-user
SetHandler perl-script
PerlHandler Apache::Ocsinventory
</Location>
#Web Service for plugin engine
<Location /ocsplugins>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
order deny,allow
allow from 127.0.0.1
</IfModule>
SetHandler perl-script
PerlHandler Apache::Ocsinventory::Plugins::Apache
</Location>
# Web service apache settings
PerlModule Apache::Ocsinventory::SOAP
<location /ocsinterface>
SetHandler perl-script
PerlHandler "Apache::Ocsinventory::SOAP"
# By default, you can query web service from everywhere with a valid user
<IfModule mod_authz_core.c>
# Apache 2.4
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Allow from all
</IfModule>
AuthType Basic
AuthName "OCS Inventory SOAP Area"
# Use htpasswd to create/update soap-user (or another granted user)
AuthUserFile "APACHE_AUTH_USER_FILE"
<IfModule mod_authz_core.c>
# Apache 2.4
Require user "SOAP_USER"
</IfModule>
<IfModule !mod_authz_core.c>
require "SOAP_USER"
</IfModule>
</location>
</IfModule>

View File

@ -1,85 +0,0 @@
version: '3'
services:
ocsapplication:
image: ocsinventory/ocsinventory-docker-image:2.12
container_name : ocsinventory-server
restart: always
expose:
- "80"
volumes:
- "perlcomdata:/etc/ocsinventory-server"
- "ocsreportsdata:/usr/share/ocsinventory-reports/ocsreports/extensions"
- "varlibdata:/var/lib/ocsinventory-reports"
- "httpdconfdata:/etc/apache2/conf-available"
environment:
OCS_DB_SERVER: ocsinventory-db
OCS_DB_USER: ocsuser
OCS_DB_PASS: ocspass
OCS_DB_NAME: ocsweb
# See documentation to set up SSL for MySQL
OCS_SSL_ENABLED: 0
links:
- ocsdb
networks:
- localocs
depends_on:
- ocsdb
ocsdb :
image : mysql:8.0
container_name : ocsinventory-db
restart: always
expose :
- "3306"
volumes :
- ./sql/:/docker-entrypoint-initdb.d/
- sqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD : rootpass
MYSQL_USER : ocsuser
MYSQL_PASSWORD : ocspass
MYSQL_DATABASE : ocsweb
networks:
- localocs
ocsproxy:
image: nginx
container_name: ocsinventory-proxy
restart: always
ports:
- 80:80
- 443:443
volumes:
- ./nginx/conf:/etc/nginx/templates
- ./nginx/certs:/etc/nginx/certs
- ./nginx/auth:/etc/nginx/auth
environment:
# 80 or 443
LISTEN_PORT: 80
# empty or ssl
PORT_TYPE: ""
SSL_CERT: ocs-dummy.crt
SSL_KEY: ocs-dummy.key
# OCS Api user restriction (default ocsapi/ocapi)
API_AUTH_FILE: ocsapi.htpasswd
# OCS Download
READ_TIMEOUT: 300
CONNECT_TIMEOUT: 300
SEND_TIMEOUT: 300
MAX_BODY_SIZE: 1G
depends_on:
- ocsapplication
networks:
- localocs
networks:
localocs:
volumes:
perlcomdata:
ocsreportsdata:
varlibdata:
httpdconfdata:
sqldata:

View File

@ -1,17 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| |"
echo "| Welcome to OCS Inventory NG Management Docker! |"
echo "| |"
echo "+----------------------------------------------------------+"
# Create all directories
mkdir -p $OCS_LOG_DIR
mkdir -p $OCS_PERLEXT_DIR/Apache/Ocsinventory/Plugins
mkdir -p $OCS_PLUGINSEXT_DIR
mkdir -p $OCS_VARLIB_DIR/download
mkdir -p $OCS_VARLIB_DIR/ipd
mkdir -p $OCS_VARLIB_DIR/logs
mkdir -p $OCS_VARLIB_DIR/scripts
mkdir -p $OCS_VARLIB_DIR/snmp

View File

@ -1,48 +0,0 @@
#!/bin/bash
SRV_CONF_FILE="/etc/apache2/conf-available/z-ocsinventory-server.conf"
if [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_COM_MODE environment variable is set! |"
echo "| Communication server, which handles HTTP communications between database |"
echo "| server and agents (Apache, perl and mod_perl) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
# Configure z-ocsinventory-server file
if [ ! -f ${SRV_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-server.conf ${SRV_CONF_FILE}
sed -i 's/VERSION_MP/2/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${SRV_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_LOG_DIRECTORY"/'"${OCS_LOG_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_PERL_DIRECTORY"/'"${OCS_PERLEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
sed -i 's/"PATH_TO_PLUGINS_CONFIG_DIRECTORY"/'"${OCS_PLUGINSEXT_DIR//\//\\/}"'/g' ${SRV_CONF_FILE}
fi
# Replace Variables
if [ -f ${SRV_CONF_FILE} ]; then
echo "+-----------------------------------------------+"
echo "| Customizing from environment variables... |"
echo "+-----------------------------------------------+"
echo
# Get all env vars starting with 'OCS_'
for var in $(env | cut -f1 -d= | grep -i OCS_); do
# Check that the current var is not commented out in conf file
if grep -q "^\s*PerlSetEnv ${var^^}" ${SRV_CONF_FILE}; then
echo "Applying Config ${var^^}=${!var} from environment variable"
sed -i "s,^\(\s*PerlSetEnv ${var^^}\).*$,\1 ${!var},g" ${SRV_CONF_FILE}
fi
done
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_LOG_DIR
# Enable conf
a2enconf z-ocsinventory-server

View File

@ -1,57 +0,0 @@
#!/bin/bash
REPORTS_CONF_FILE="/etc/apache2/conf-available/ocsinventory-reports.conf"
DB_CONFIG_INC_FILE="${OCS_WEBCONSOLE_DIR}/ocsreports/dbconfig.inc.php"
if [ ! -z "${OCS_DISABLE_WEB_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_WEB_MODE environment variable is set! |"
echo "| Administration console, which allows administrators to query the database |"
echo "| server using their favorite browser (Apache, php) will be DISABLED! |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
if [ ! -f $OCS_WEBCONSOLE_DIR/ocsreports/var.php ]; then
cp -r /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/ocsreports/ ${OCS_WEBCONSOLE_DIR}
rm -rf ${DB_CONFIG_INC_FILE}
fi
# Configure ocsinventory-reports file
if [ ! -f ${REPORTS_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-reports.conf ${REPORTS_CONF_FILE}
sed -i 's/OCSREPORTS_ALIAS/\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_OCSREPORTS_DIR/'"${OCS_WEBCONSOLE_DIR//\//\\/}"'\/ocsreports/g' ${REPORTS_CONF_FILE}
sed -i 's/PACKAGES_ALIAS/\/download/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_PACKAGES_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'download/g' ${REPORTS_CONF_FILE}
sed -i 's/SNMP_ALIAS/\/snmp/g' ${REPORTS_CONF_FILE}
sed -i 's/PATH_TO_SNMP_DIR/'"${OCS_VARLIB_DIR//\//\\/}"'snmp/g' ${REPORTS_CONF_FILE}
fi
# Generate dbconfig.inc.php
if [ ! -f ${DB_CONFIG_INC_FILE} ]; then
cp /tmp/conf/dbconfig.inc.php $OCS_WEBCONSOLE_DIR/ocsreports
sed -i 's/OCS_DB_NAME/'"$OCS_DB_NAME"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_READ_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_WRITE_NAME/'"$OCS_DB_SERVER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PORT/'"$OCS_DB_PORT"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_USER/'"$OCS_DB_USER"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_DB_PASS/'"$OCS_DB_PASS"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_WEB_MODE/'"$OCS_SSL_WEB_MODE"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_KEY/'"${OCS_SSL_KEY//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CERT/'"${OCS_SSL_CERT//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
sed -i 's/OCS_SSL_CA/'"${OCS_SSL_CA//\//\\/}"'/g' ${DB_CONFIG_INC_FILE}
fi
# Permissions
chown -R $APACHE_RUN_USER: $OCS_VARLIB_DIR
chown -R $APACHE_RUN_USER: $OCS_WEBCONSOLE_DIR
# rm install.php
if [ -f $OCS_WEBCONSOLE_DIR/ocsreports/install.php ]; then
rm $OCS_WEBCONSOLE_DIR/ocsreports/install.php
fi
# Enable conf
a2enconf ocsinventory-reports

View File

@ -1,32 +0,0 @@
#!/bin/bash
if [ ! -z "${OCS_DISABLE_API_MODE}" ] || [ ! -z "${OCS_DISABLE_COM_MODE}" ]; then
echo "+---------------------------------------------------------------------------+"
echo "| Warning: OCS_DISABLE_API_MODE or OCS_DISABLE_COM_MODE environment |"
echo "| variable is set! |"
echo "| REST API will be DISABLED |"
echo "+---------------------------------------------------------------------------+"
exit 0
fi
API_CONF_FILE="/etc/apache2/conf-available/zz-ocsinventory-restapi.conf"
API_ROUTE=$(perl -e "print \"@INC[2]\"")
API_ROUTE_LOADER="${API_ROUTE}/Api/Ocsinventory/Restapi/Loader.pm"
cp -R /tmp/OCSNG_UNIX_SERVER-${OCS_VERSION}/Api/ ${API_ROUTE}
# Configure zz-ocsinventory-restapi file
if [ ! -f ${API_CONF_FILE} ]; then
cp /tmp/conf/ocsinventory-restapi.conf ${API_CONF_FILE}
sed -i 's/DATABASE_SERVER/'"$OCS_DB_SERVER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PORT/'"$OCS_DB_PORT"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_NAME/'"$OCS_DB_NAME"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_USER/'"$OCS_DB_USER"'/g' ${API_CONF_FILE}
sed -i 's/DATABASE_PASSWD/'"$OCS_DB_PASS"'/g' ${API_CONF_FILE}
sed -i 's/OCS_SSL_ENABLED/'"$OCS_SSL_ENABLED"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_PATH/'"${API_ROUTE//\//\\/}"'/g' ${API_CONF_FILE}
sed -i 's/REST_API_LOADER_PATH/'"${API_ROUTE_LOADER//\//\\/}"'/g' ${API_CONF_FILE}
fi
# Enable conf
a2enconf zz-ocsinventory-restapi

View File

@ -1,35 +0,0 @@
#!/bin/bash
echo "+----------------------------------------------------------+"
echo "| Setting Apache Server Name to '${APACHE_SERVER_NAME:-localhost}'"
echo "+----------------------------------------------------------+"
echo
sed -ri -e "s!^#(ServerName)\s+\S+!\1 ${APACHE_SERVER_NAME:-localhost}:80!g" \
"/etc/apache2/apache2.conf"
# Remove temp files
echo "+--------------------------------+"
echo "| Removing not used files... |"
echo "+--------------------------------+"
echo
cd /tmp
shopt -s extglob
rm -rf !("conf")
# Apache start
if [ ! -d "$APACHE_RUN_DIR" ]; then
mkdir "$APACHE_RUN_DIR"
chown $APACHE_RUN_USER:$APACHE_RUN_GROUP "$APACHE_RUN_DIR"
fi
if [ -f "$APACHE_PID_FILE" ]; then
rm "$APACHE_PID_FILE"
fi
echo "+----------------------------------------------------------+"
echo "| OK, prepare finshed ;-) |"
echo "| |"
echo "| Starting OCS Inventory NG Management Docker... |"
echo "+----------------------------------------------------------+"
echo

View File

@ -1,35 +0,0 @@
#!/bin/bash
# vim:sw=4:ts=4:et
set -e
if [ -z "${OCS_ENTRYPOINT_QUIET_LOGS:-}" ]; then
exec 3>&1
else
exec 3>/dev/null
fi
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do
case "$f" in
*.sh)
if ! [ -x "$f" ]; then
chmod +x $f
fi
echo -e >&3 "\n$0: Launching ${f}\n"
"$f"
;;
*) echo -e >&3 "\n$0: Ignoring ${f}\n" ;;
esac
done
echo >&3 "$0: Configuration complete; ready for start up"
else
echo >&3 "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
exec "$@"

Some files were not shown because too many files have changed in this diff Show More