Ralph is the CMDB / Asset Management system for data center and back office hardware.

Overview

Ralph

Ralph is full-featured Asset Management, DCIM and CMDB system for data centers and back offices.

Features:

  • keep track of assets purchases and their life cycle
  • flexible flow system for assets life cycle
  • data center and back office support
  • dc visualization built-in

It is an Open Source project provided on Apache v2.0 License.

Gitter Build Status Coverage Status Code Health

Live demo:

http://ralph-demo.allegro.tech/

  • login: ralph
  • password: ralph

Screenshots

img

img

img

Documentation

Visit our documentation on readthedocs.org

Getting help

Comments
  • [SOLVED] Installation on CentOS/RHEL7

    [SOLVED] Installation on CentOS/RHEL7

    The following procedure documents the minimum set of actions required to install the current release (20170613.1) on a pristine EPEL-enabled EL7, and run ralph as an unprivileged passwordless system user ralph in a virtualenv/nodeenv environment with a MariaDB SQL backend instance.

    As root :

    firewall-cmd --permanent --add-port=8000/tcp && firewall-cmd --reload
    
    yum-config-manager --enable epel
    yum install mariadb-server
    systemctl start mariadb && systemctl enable mariadb
    
    yum install gcc-c++ mariadb-devel redhat-rpm-config openldap-devel
    
    yum install python34-pip python34-devel
    useradd -d /opt/ralph -c "Ralph service account" -m -r ralph
    
    su - ralph
    

    As user ralph :

    (
    echo "DROP DATABASE IF EXISTS ralph_ng; CREATE DATABASE ralph_ng DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;"
    echo "CREATE USER 'ralph_ng'@'localhost' IDENTIFIED BY 'ralph_ng';"
    echo "GRANT ALL PRIVILEGES ON ralph_ng.* TO [email protected] WITH GRANT OPTION;"
    echo "FLUSH PRIVILEGES;"
    ) | mysql -u root
    
    pip3 install --user virtualenv
    virtualenv ralph && . ~/ralph/bin/activate
    echo ". ~/ralph/bin/activate" >> ~/.bashrc
    
    
    pip install nodeenv
    nodeenv -p
    npm install -g bower
    npm install -g gulp
    
    wget https://github.com/allegro/ralph/archive/20170613.1.tar.gz
    tar xf 20170613.1.tar.gz
    ln -s ralph-20170613.1/ ralph-core
    cd ralph-core/
    make install
    make install-test
    gulp
    ralph migrate
    make menu
    
    ralph syncdb
    	(credentials: admin/admin)
    
    RALPH_DEBUG=True ralph runserver 0.0.0.0:8000
    

    Ralph now runs on the publically accessible http://admin:[email protected]:8000/

    This solves issue https://github.com/allegro/ralph/issues/2978 .

    opened by didierm 26
  • Cannot start Ralph

    Cannot start Ralph

    I installed Ralph on Ubuntu 14.04 LTS using the installation guide from http://ralph-ng.readthedocs.org/en/ng/installation/ using the Ubuntu package. After I installed, I had to add ralph to my $PATH. When I was able to run ralph migrate, I was unable to progress because the command ran into an error. The error is inside the pastebin link below. I apologize if I am submitting an issue that seems dumb, I don't have much experience with *nix.

    http://pastebin.com/BZipKb0K

    opened by bc-csagit 24
  • LDAP Sync not working

    LDAP Sync not working

    I am trying to set up LDAP sync with our 2008 AD server and am running into some issues.

    Code inserted into src/ralph/settings/prod.py:

    AUTHENTICATION_BACKENDS = (
        'django_auth_ldap.backend.LDAPBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
    
    import ldap
    from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
    AUTH_LDAP_SERVER_URI = "ldap://ladbsix.somenet.local:389"
    AUTH_LDAP_BIND_DN = "CN=ralph,OU=Ralph,DC=somenet,DC=local"
    AUTH_LDAP_BIND_PASSWORD = "somepass"
    AUTH_LDAP_PROTOCOL_VERSION = 3
    AUTH_LDAP_USER_USERNAME_ATTR = "sAMAccountName"
    AUTH_LDAP_USER_SEARCH_BASE = "DC=allegrogroup,DC=internal"
    AUTH_LDAP_USER_SEARCH_FILTER = '(&(objectClass=*)({0}=%(user)s))'.format(
      AUTH_LDAP_USER_USERNAME_ATTR)
    AUTH_LDAP_USER_SEARCH = LDAPSearch(AUTH_LDAP_USER_SEARCH_BASE,
      ldap.SCOPE_SUBTREE, AUTH_LDAP_USER_SEARCH_FILTER)
    AUTH_LDAP_USER_ATTR_MAP = {
      "first_name": "givenName",
      "last_name": "sn",
      "email": "mail",
    }
    
    from ralph.accounts.ldap import MappedGroupOfNamesType
    
    AUTH_LDAP_GROUP_MAPPING = {
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "staff",
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "superuser",
      'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "ladb",
    }
    AUTH_LDAP_MIRROR_GROUPS = True
    AUTH_LDAP_GROUP_TYPE = MappedGroupOfNamesType(name_attr="cn")
    AUTH_LDAP_GROUP_SEARCH = LDAPSearch("DC=somenet,DC=local",
        ldap.SCOPE_SUBTREE, '(objectClass=group)')
    
    AUTH_LDAP_NESTED_GROUPS = {
        'CN=_gr_ralph_admin,OU=Ralph,DC=somenet,DC=local': "staff",  # _gr_ralph_users contains other LDAP groups inside
    }
    
    AUTH_LDAP_USER_FILTER = '(|(memberOf=CN=_gr_ralph_admin,OU=Ralph,'\
        'DC=somenet,DC=local))'
    

    output from running ralph ldap_sync

    
    Traceback (most recent call last):
      File "/usr/local/bin/ralph", line 9, in <module>
        load_entry_point('ralph==3.0.0', 'console_scripts', 'ralph')()
      File "/opt/ralph/src/ralph/__main__.py", line 29, in prod
        main('ralph.settings.prod')
      File "/opt/ralph/src/ralph/__main__.py", line 14, in main
        execute_from_command_line(sys.argv)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
        utility.execute()
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 346, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 394, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 445, in execute
        output = self.handle(*args, **options)
      File "/opt/ralph/src/ralph/accounts/management/commands/ldap_sync.py", line 219, in handle
        self.nested_groups = NestedGroups()
      File "/opt/ralph/src/ralph/accounts/management/commands/ldap_sync.py", line 103, in __init__
        self.group_users, self.users_groups = get_nested_groups()
    TypeError: 'NoneType' object is not iterable
    
    bug ng 
    opened by mholttech 22
  • 500 inernal after upgrade ralph-core

    500 inernal after upgrade ralph-core

    Hey guys I have got 500 internal after upgrade ralph-core from 3.0.0-snapshot-20160607-5736 to 3.0.0-snapshot-20160610 this did help https://github.com/allegro/ralph/issues?page=2&q=is%3Aissue+is%3Aopen

    Error:

    ralph migrate /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/contenttypes/models.py:161: RemovedInDjango19Warning: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class ContentType(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/admin/models.py:28: RemovedInDjango19Warning: Model class django.contrib.admin.models.LogEntry doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class LogEntry(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.contrib.contenttypes.generic is deprecated and will be removed in Django 1.9. Its contents have been moved to the fields, forms, and admin submodules of django.contrib.contenttypes. return f(_args, *_kwds)

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: The utilities in django.db.models.loading are deprecated in favor of the new application loading system. return f(_args, *_kwds)

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:41: RemovedInDjango19Warning: Model class django.contrib.auth.models.Permission doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Permission(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:98: RemovedInDjango19Warning: Model class django.contrib.auth.models.Group doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Group(models.Model):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/django/contrib/auth/models.py:436: RemovedInDjango19Warning: Model class django.contrib.auth.models.User doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class User(AbstractUser):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/taggit/models.py:96: RemovedInDjango19Warning: Model class taggit.models.Tag doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class Tag(TagBase):

    /opt/ralph/ralph-core/lib/python3.4/site-packages/taggit/models.py:201: RemovedInDjango19Warning: Model class taggit.models.TaggedItem doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9. class TaggedItem(GenericTaggedItemBase, TaggedItemBase):

    /opt/ralph/ralph-core/lib/python3.4/importlib/_bootstrap.py:321: RemovedInDjango19Warning: django.utils.importlib will be removed in Django 1.9. return f(_args, *_kwds)

    password and user database are ok. also checked in ralph shell.

    opened by daro1337 21
  • Cannot import simple data

    Cannot import simple data

    I have an test asset CSV file for importing:

    rack,budget_info,parent,model,management_ip,service_env,asset_ptr,baseobject_ptr,id,created,modified,content_type,remarks,hostname,sn,barcode,niw,required_support,order_no,invoice_no,invoice_date,price,provider,depreciation_rate,force_depreciation,depreciation_end_date,task_url,property_of,status,position,orientation,slot_no,connections,source,delivery_date,production_year,production_use_date,management_hostname,tags
    ,,,1,,1,,,,,,,,,6CU543YD7R,,,,,,,,,,,,,,,,,,,,,,,,
    

    But I am seeing errors (I have enabled full traceback):

    Line number: 1 - Cannot assign None: "DataCenterAsset.model" does not allow null values.
    Traceback (most recent call last):
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 360, in import_data
    self.import_obj(instance, row, real_dry_run)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 226, in import_obj
    self.import_field(field, obj, data)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/resources.py", line 218, in import_field
    field.save(obj, data)
    File "/home/vagrant/lib/python3.4/site-packages/import_export/fields.py", line 94, in save
    setattr(obj, self.attribute, self.clean(data))
    File "/home/vagrant/lib/python3.4/site-packages/django/db/models/fields/related.py", line 634, in __set__
    (instance._meta.object_name, self.field.name)
    ValueError: Cannot assign None: "DataCenterAsset.model" does not allow null values.
    

    I am sure I have an asset model record with an id of 1.

    I have found the crux of the problem is at src/ralph/data_importer/widgets.py, in which the following statement yields nothing:

        imported_obj = ImportedObjects.objects.filter(
            content_type=content_type,
            old_object_pk=str(old_pk)
        ).first()
    

    How can I fix this problem?

    bug ng 
    opened by fossilet 19
  • ralph migrate issues --> Can't install!

    ralph migrate issues --> Can't install!

    Just installed 3.0.0-snapshot-20160824-6995, and can't seem to run ralph migrate:

    Operations to perform:
      Synchronize unmigrated apps: import_export, rest_framework, mptt, staticfiles, taggit_serializer, messages, humanize, ralph_admin, django_rq, table, dc_view, foundation, ralph2_sync, permissions
      Apply all migrations: accounts, external_services, assets, data_importer, authtoken, deployment, dhcp, licences, security, auth, custom_fields, admin, data_center, taggit, dashboards, transitions, sessions, attachments, operations, reversion, sitetree, back_office, reports, supports, domains, virtual, networks, contenttypes
    Synchronizing apps without migrations:
      Creating tables...
        Running deferred SQL...
      Installing custom SQL...
    Running migrations:
      Rendering model states... DONE
      Applying contenttypes.0001_initial... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0001_initial... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying accounts.0001_initial... OK
      Applying accounts.0002_auto_20151204_0758... OK
      Applying accounts.0003_region_country... OK
      Applying accounts.0004_region_stocktaking_enabled... OK
      Applying admin.0001_initial... OK
      Applying data_importer.0001_initial... OK
      Applying data_importer.0002_auto_20151125_1354... OK
      Applying data_importer.0003_auto_20160624_1217... OK
      Applying data_importer.0004_auto_20160728_1046... OK
      Applying taggit.0001_initial... OK
      Applying taggit.0002_auto_20150616_2121... OK
      Applying assets.0001_initial... OK
      Applying assets.0002_auto_20151125_1354... OK
      Applying assets.0003_auto_20151126_2205... OK
      Applying assets.0004_auto_20151204_0758... OK
      Applying assets.0005_category_depreciation_rate... OK
      Applying assets.0006_category_show_buyout_date... OK
      Applying assets.0007_auto_20160122_1022... OK
      Applying assets.0008_auto_20160122_1429... OK
      Applying assets.0009_auto_20160307_1138... OK
      Applying assets.0010_auto_20160405_1531... OK
      Applying assets.0011_auto_20160603_0742... OK
      Applying assets.0012_auto_20160606_1409... OK
      Applying assets.0013_auto_20160615_2140... OK
      Applying assets.0014_memory... OK
      Applying assets.0015_auto_20160701_0952... OK
      Applying assets.0016_fibrechannelcard... OK
      Applying assets.0017_processor... OK
      Applying assets.0018_disk... OK
      Applying assets.0019_auto_20160719_1443... OK
      Applying assets.0020_auto_20160803_0712...Traceback (most recent call last):
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
        return self.cursor.execute(query, args)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
        self.errorhandler(self, exc, value)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorvalue
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
        r = self._query(query)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
        rowcount = self._do_query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
        db.query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
        _mysql.connection.query(self, query)
    _mysql_exceptions.OperationalError: (1025, "Error on rename of './ralph/#sql-220b_8c' to './ralph/assets_configurationclass' (errno: 150)")
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "/opt/ralph/ralph-core/bin/ralph", line 9, in <module>
        load_entry_point('ralph==3.0.0', 'console_scripts', 'ralph')()
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/ralph/__main__.py", line 29, in prod
        main('ralph.settings.prod')
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/ralph/__main__.py", line 14, in main
        execute_from_command_line(sys.argv)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
        utility.execute()
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/__init__.py", line 346, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/base.py", line 394, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/base.py", line 445, in execute
        output = self.handle(*args, **options)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 222, in handle
        executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/executor.py", line 110, in migrate
        self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
        state = migration.apply(state, schema_editor)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/migration.py", line 115, in apply
        operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/operations/special.py", line 43, in database_forwards
        database_operation.database_forwards(app_label, schema_editor, from_state, to_state)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 275, in database_forwards
        to_model._meta.get_field(self.new_name),
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 484, in alter_field
        old_db_params, new_db_params, strict)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 547, in _alter_field
        self.execute(self._rename_field_sql(model._meta.db_table, old_field, new_field, new_type))
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 111, in execute
        cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/utils.py", line 98, in __exit__
        six.reraise(dj_exc_type, dj_exc_value, traceback)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise
        raise value.with_traceback(tb)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/utils.py", line 64, in execute
        return self.cursor.execute(sql, params)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/django/db/backends/mysql/base.py", line 124, in execute
        return self.cursor.execute(query, args)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 220, in execute
        self.errorhandler(self, exc, value)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
        raise errorvalue
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 209, in execute
        r = self._query(query)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 371, in _query
        rowcount = self._do_query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/cursors.py", line 335, in _do_query
        db.query(q)
      File "/opt/ralph/ralph-core/lib/python3.4/site-packages/MySQLdb/connections.py", line 280, in query
        _mysql.connection.query(self, query)
    django.db.utils.OperationalError: (1025, "Error on rename of './ralph/#sql-220b_8c' to './ralph/assets_configurationclass' (errno: 150)")
    
    opened by yanfosec 17
  • 500 internal error

    500 internal error

    hi OS ubuntu Buster

    i imported about 900 vms in virtual servers and it have 9 pages now i can view 6 pages without problem but in pages 7 - 9 i get this error

    Environment:

    Request Method: GET Request URL: http://foo.bar/virtual/virtualserver/?p=6

    Django Version: 1.8.19 Python Version: 3.6.7 Installed Applications: ('ralph.admin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.humanize', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_rq', 'import_export', 'mptt', 'reversion', 'sitetree', 'ralph.accounts', 'ralph.assets', 'ralph.attachments', 'ralph.back_office', 'ralph.configuration_management', 'ralph.dashboards', 'ralph.data_center', 'ralph.dhcp', 'ralph.deployment', 'ralph.licences', 'ralph.domains', 'ralph.trade_marks', 'ralph.sim_cards', 'ralph.supports', 'ralph.security', 'ralph.lib.foundation', 'ralph.lib.table', 'ralph.networks', 'ralph.data_importer', 'ralph.dc_view', 'ralph.reports', 'ralph.virtual', 'ralph.operations', 'ralph.lib.external_services', 'ralph.lib.transitions', 'ralph.lib.permissions', 'ralph.lib.custom_fields', 'ralph.lib.hooks', 'ralph.notifications', 'ralph.ssl_certificates', 'rest_framework', 'rest_framework.authtoken', 'taggit', 'taggit_serializer') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'threadlocals.middleware.ThreadLocalMiddleware')

    Template error: In template /opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/admin/templates/admin/change_list.html, error at line 104 'NoneType' object has no attribute 'get_absolute_url'

    94 : {% include 'admin/partials/filters.html' %}

    95 : {% endif %}

    96 : {% endif %}

    97 : {% endblock %}

    98 : {% endif %}

    99 :

    100 : {% block result_list %}

    101 : {% if cl.formset %}

    102 : {{ cl.formset.management_form }}

    103 : {% endif %}

    104 : {% result_list cl %}

    105 : {% if action_form and actions_on_bottom and cl.show_admin_actions %}

    106 : {% admin_actions %}

    107 : {% endif %}

    108 : {% endblock %}

    109 :

    110 :

    111 :

    112 :

    113 : {% block pagination %}

    114 : {% pagination cl %}

    Traceback: File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/core/handlers/base.py" in get_response 164. response = response.render() File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/response.py" in render 158. self.content = self.rendered_content File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/response.py" in rendered_content 135. content = template.render(context, self._request) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/backends/django.py" in render 74. return self.template.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 210. return self._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 135. return compiled_parent._render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in _render 202. return self.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 65. result = block.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/loader_tags.py" in render 65. result = block.nodelist.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 905. bit = self.render_node(node, context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/debug.py" in render_node 79. return node.render(context) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/template/base.py" in render 1273. _dict = func(*resolved_args, **resolved_kwargs) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in result_list 320. 'results': list(results(cl))} File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in results 296. yield ResultList(None, items_for_result(cl, res, None)) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in init 287. super(ResultList, self).init(*items) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/templatetags/admin_list.py" in items_for_result 199. f, attr, value = lookup_field(field_name, result, cl.model_admin) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/contrib/admin/utils.py" in lookup_field 278. value = attr(obj) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/ralph/virtual/admin.py" in get_parent 177. obj.parent.get_absolute_url(), obj.parent.hostname

    Exception Type: AttributeError at /virtual/virtualserver/ Exception Value: 'NoneType' object has no attribute 'get_absolute_url'

    opened by Talangor 15
  • Installation

    Installation

    Hi,

    i have a Problem, i will tested ralph3 but cannot installation.

    1. sudo apt-get update && sudo apt-get install apt-transport-https 2.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 3.sudo sh -c "echo 'deb https://dl.bintray.com/vi4m/ralph wheezy main' > /etc/apt/sources.list.d/vi4m_ralph.list" 4.sudo apt-get update

    Error: OK:1 http://de.archive.ubuntu.com/ubuntu xenial InRelease OK:2 http://security.ubuntu.com/ubuntu xenial-security InRelease
    OK:3 http://de.archive.ubuntu.com/ubuntu xenial-updates InRelease
    OK:4 http://de.archive.ubuntu.com/ubuntu xenial-backports InRelease Ign:5 https://dl.bintray.com/vi4m/ralph wheezy InRelease Ign:6 https://dl.bintray.com/vi4m/ralph wheezy Release Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Ign:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Fehl:7 https://dl.bintray.com/vi4m/ralph wheezy/main amd64 Packages 404 Not Found Ign:8 https://dl.bintray.com/vi4m/ralph wheezy/main i386 Packages Ign:9 https://dl.bintray.com/vi4m/ralph wheezy/main all Packages Ign:10 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de_DE Ign:11 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-de Ign:12 https://dl.bintray.com/vi4m/ralph wheezy/main Translation-en Paketlisten werden gelesen... Fertig W: The repository 'https://dl.bintray.com/vi4m/ralph wheezy Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch https://dl.bintray.com/vi4m/ralph/dists/wheezy/main/binary-amd64/Packages 404 Not Found E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.

    What is wrong?

    Thanks

    opened by spinnnor 14
  • Back Office / Hardware

    Back Office / Hardware

    Hi Since the last update i can there are some basic info display error. Here, the model is no longer displayed. Also the user no longer appears.

    I see also this error everytime when I load a page: /static/bower_components/iron-a11y-announcer/iron-a11y-announcer.html HTTP/1.1" 404 1796

    opened by renki81 14
  • USE_TZ = True.

    USE_TZ = True.

    We are using the following settings regarding timezone:

    TIME_ZONE = 'Europe/Warsaw'
    USE_TZ = False
    

    When USE_TZ is False, Django would store timestamps in the timezone of TIME_ZONE, and this is how ralph is storing time. After I realised I should change TIME_ZONE, even if I changed TIME_ZONE to 'Asia/Beijing', the stored time are still in the old timezone (GMT+1). How about it that we change USE_TZ to True, to make sue time is always saved as UTC? This is also recommended by Django.

    opened by fossilet 14
  • Mariadb maximum keylength 767

    Mariadb maximum keylength 767

    Steps to reproduce

    Install on Ubuntu 18.04 with mariadb-server

    Expected behavior

    ralphctl migrate complete successfully

    Actual behavior

    Exception raised Applying accounts.0001_initial...Traceback (most recent call last): File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/backends/utils.py", line 62, in execute return self.cursor.execute(sql) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 124, in execute return self.cursor.execute(query, args) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 250, in execute self.errorhandler(self, exc, value) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler raise errorvalue File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 247, in execute res = self._query(query) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 412, in _query rowcount = self._do_query(q) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/cursors.py", line 375, in _do_query db.query(q) File "/opt/ralph/ralph-core/lib/python3.6/site-packages/MySQLdb/connections.py", line 276, in query _mysql.connection.query(self, query) _mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')

    Environment

    • Ralph version: ralph-core 20190124.2 amd64
    • Mariadb: mariadb-server 1:10.1.34-0ubunt all
    • Operating system: Ubuntu 18.04
    • Method of installation: repository package (as per installation documentation)
    opened by tsdogs 13
  • the ralph default password?

    the ralph default password?

    • Ralph version: 3.0
    • Operating system: ubuntu 20.04 docker compose install ; https://ralph-ng.readthedocs.io/en/stable/installation/installation/ this is the url .

    I installed ralph via docker, I have reached the login screen after the installation is complete, but there is no password to log in properly, docker-compose installation, please ask what is the default password?

    opened by thisisannetwork 1
  • docker-compose.yml.tmpl missing / located elsewhere

    docker-compose.yml.tmpl missing / located elsewhere

    https://ralph-ng.readthedocs.io/en/stable/installation/installation/ says to look for docker-compose.yml.tmpl in https://github.com/allegro/ralph/tree/ng/contrib , but that file is not there.

    There's docker-compose.yml in https://github.com/allegro/ralph/tree/ng/docker , but it's not quite clear whether that's the same thing.

    opened by richlv 2
  • WIP django3.2 python 3.10 support

    WIP django3.2 python 3.10 support

    I started working on porting to django 3.2 but currently stuck on

    django-admin migrate   
    Traceback (most recent call last):
      File "/home/jens/.local/bin/django-admin", line 8, in <module>
        sys.exit(execute_from_command_line())
      File "/home/jens/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
        utility.execute()
      File "/home/jens/.local/lib/python3.10/site-packages/django/core/management/__init__.py", line 395, in execute
        django.setup()
      File "/home/jens/.local/lib/python3.10/site-packages/django/__init__.py", line 24, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/home/jens/.local/lib/python3.10/site-packages/django/apps/registry.py", line 114, in populate
        app_config.import_models()
      File "/home/jens/.local/lib/python3.10/site-packages/django/apps/config.py", line 301, in import_models
        self.models_module = import_module(models_module_name)
      File "/usr/lib64/python3.10/importlib/__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 883, in exec_module
      File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
      File "/home/jens/workplace/ralph-ng/src/ralph/access_cards/models.py", line 13, in <module>
        from ralph.back_office.models import autocomplete_user
      File "/home/jens/workplace/ralph-ng/src/ralph/back_office/models.py", line 19, in <module>
        from ralph.assets.models.assets import (
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/__init__.py", line 1, in <module>
        from ralph.assets.models.assets import (
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/assets.py", line 15, in <module>
        from ralph.assets.models.base import BaseObject
      File "/home/jens/workplace/ralph-ng/src/ralph/assets/models/base.py", line 9, in <module>
        from ralph.lib.custom_fields.models import (
      File "/home/jens/workplace/ralph-ng/src/ralph/lib/custom_fields/models.py", line 17, in <module>
        from .fields import (
      File "/home/jens/workplace/ralph-ng/src/ralph/lib/custom_fields/fields.py", line 5, in <module>
        from django.contrib.contenttypes.fields import (
    ImportError: cannot import name 'ReverseGenericRelatedObjectsDescriptor' from 'django.contrib.contenttypes.fields' (/home/jens/.local/lib/python3.10/site-packages/django/contrib/contenttypes/fields.py)
    

    I will see if I have some time later to look into this

    opened by JensTimmerman 0
  • ralh is still based on django 1.8 when this is no longer supported

    ralh is still based on django 1.8 when this is no longer supported

    This means there is a high chance that there exist critical security updates in django that never make it to this project https://endoflife.date/django

    consider porting to django 3.2

    opened by JensTimmerman 0
  • Releases(20221208.1)
    • 20221208.1(Dec 8, 2022)

      What's Changed

      • Add new statuses for assets by @matyldv in https://github.com/allegro/ralph/pull/3744

      Full Changelog: https://github.com/allegro/ralph/compare/20221108.1...20221208.1

      Source code(tar.gz)
      Source code(zip)
    • 20221108.1(Nov 8, 2022)

      What's Changed

      • ITS-368993 | Added new status to backoffice assets. by @lukaszkarykowski in https://github.com/allegro/ralph/pull/3725

      Full Changelog: https://github.com/allegro/ralph/compare/20221107.1...20221108.1

      Source code(tar.gz)
      Source code(zip)
    • 20221107.1(Nov 7, 2022)

      What's Changed

      • Modify buyout date calculation by @hipek8 in https://github.com/allegro/ralph/pull/3743

      Full Changelog: https://github.com/allegro/ralph/compare/20221027.1...20221107.1

      Source code(tar.gz)
      Source code(zip)
    • 20221027.1(Oct 27, 2022)

      What's Changed

      • Add Utility Model by @awieckowski in https://github.com/allegro/ralph/pull/3741

      Full Changelog: https://github.com/allegro/ralph/compare/20220725.1...20221027.1

      Source code(tar.gz)
      Source code(zip)
    • 20220725.1(Jul 25, 2022)

      What's Changed

      • Allow editing hostname by default by @hipek8 in https://github.com/allegro/ralph/pull/3729

      Full Changelog: https://github.com/allegro/ralph/compare/20220718.1...20220725.1

      Source code(tar.gz)
      Source code(zip)
    • 20220718.1(Jul 18, 2022)

      What's Changed

      • Add additional transitions history filter fields by @awieckowski in https://github.com/allegro/ralph/pull/3736
      • Add import ssl certificates from many repositories by @awieckowski in https://github.com/allegro/ralph/pull/3738

      Full Changelog: https://github.com/allegro/ralph/compare/20220701.1...20220718.1

      Source code(tar.gz)
      Source code(zip)
    • 20220701.1(Jul 1, 2022)

      What's Changed

      • fix vip update event handling by @szymi- in https://github.com/allegro/ralph/pull/3734
      • Fix report generation by @matyldv in https://github.com/allegro/ralph/pull/3733
      • disallow ralph user modification in ralph demo by @szymi- in https://github.com/allegro/ralph/pull/3735

      New Contributors

      • @matyldv made their first contribution in https://github.com/allegro/ralph/pull/3733

      Full Changelog: https://github.com/allegro/ralph/compare/20220414.1...20220701.1

      Source code(tar.gz)
      Source code(zip)
    • 20220414.1(Apr 14, 2022)

      What's Changed

      • Fix failure when service missing in dnsaas record by @hipek8 in https://github.com/allegro/ralph/pull/3726

      Full Changelog: https://github.com/allegro/ralph/compare/20220411.1...20220414.1

      Source code(tar.gz)
      Source code(zip)
    • 20220411.1(Apr 11, 2022)

      What's Changed

      • Fix/dnsaas service | Fix maximum recursion error when querying dnsaas API by @hipek8 in https://github.com/allegro/ralph/pull/3723

      Full Changelog: https://github.com/allegro/ralph/compare/20220405.1...20220411.1

      Source code(tar.gz)
      Source code(zip)
    • 20220405.1(Apr 6, 2022)

      What's Changed

      • fix ralph demo nginx config by @szymi- in https://github.com/allegro/ralph/pull/3719
      • Don't query obsolete dnsaas /api/domains endpoint by @hipek8 in https://github.com/allegro/ralph/pull/3722

      Full Changelog: https://github.com/allegro/ralph/compare/20220301.1...20220405.1

      Source code(tar.gz)
      Source code(zip)
    • 20220301.1(Mar 1, 2022)

      What's Changed

      • Fix extra arguments persisting between requests by @hipek8 in https://github.com/allegro/ralph/pull/3714

      Full Changelog: https://github.com/allegro/ralph/compare/20220228.1...20220301.1

      Source code(tar.gz)
      Source code(zip)
    • 20220228.1(Feb 28, 2022)

      What's Changed

      • ralph demo resources by @szymi- in https://github.com/allegro/ralph/pull/3709
      • Switching to Discourse by @vi4m in https://github.com/allegro/ralph/pull/3708
      • trace request id if operational error occurs by @szymi- in https://github.com/allegro/ralph/pull/3713

      Full Changelog: https://github.com/allegro/ralph/compare/20220207.1...20220228.1

      Source code(tar.gz)
      Source code(zip)
    • 20220207.1(Feb 7, 2022)

      What's Changed

      • Prevent xss in network related to ip address and in related subnetwork table by @hipek8 in https://github.com/allegro/ralph/pull/3699

      Full Changelog: https://github.com/allegro/ralph/compare/20220111.1...20220207.1

      Source code(tar.gz)
      Source code(zip)
    • 20220111.1(Jan 11, 2022)

      What's Changed

      • incremental openstack sync by @szymi- in https://github.com/allegro/ralph/pull/3697

      Full Changelog: https://github.com/allegro/ralph/compare/20211222.1...20220111.1

      Source code(tar.gz)
      Source code(zip)
    • 20211222.1(Dec 22, 2021)

      What's Changed

      • initial data commands by @szymi- in https://github.com/allegro/ralph/pull/3680
      • refactor openstack client by @szymi- in https://github.com/allegro/ralph/pull/3682
      • Documentation links should now work correctly locally and hosted by @hipek8 in https://github.com/allegro/ralph/pull/3698

      Full Changelog: https://github.com/allegro/ralph/compare/20211220.1...20211222.1

      Source code(tar.gz)
      Source code(zip)
    • 20211220.1(Dec 20, 2021)

      What's Changed

      • Add trademark type 3D by @hipek8 in https://github.com/allegro/ralph/pull/3688
      • Fix XSS vulnerability in IP Addresses when linked object contained html tags by @hipek8 in https://github.com/allegro/ralph/pull/3681
      • VIP error logs should now correctly aggregate by @hipek8 in https://github.com/allegro/ralph/pull/3696

      Full Changelog: https://github.com/allegro/ralph/compare/20211123.1...20211220.1

      Source code(tar.gz)
      Source code(zip)
    • 20211123.1(Dec 6, 2021)

      What's Changed

      • Auto strip whitespaces in hostnames by @hipek8 in https://github.com/allegro/ralph/pull/3676
      • Fix error causing problems on Support import by @hipek8 in https://github.com/allegro/ralph/pull/3679

      Full Changelog: https://github.com/allegro/ralph/compare/20211117.1...20211123.1

      Source code(tar.gz)
      Source code(zip)
    • 20211117.1(Nov 17, 2021)

    • 20211112.1(Nov 12, 2021)

    • 20211108.1(Nov 8, 2021)

    • 20211029.1(Oct 29, 2021)

    • 20210922.1(Sep 22, 2021)

    • 20210921.3(Sep 21, 2021)

    • 20210921.2(Sep 21, 2021)

    • 20210921.1(Sep 21, 2021)

    • 20210908.1(Sep 8, 2021)

    • 20210706.1(Jul 6, 2021)

    • 20210629.1(Jun 29, 2021)

    • 20210615.1(Jun 15, 2021)

    • 20210525.1(May 25, 2021)

    Owner
    Allegro Tech
    Allegro Tech Open Source Projects
    Allegro Tech
    🐳 Docker templates for various languages.

    Docker Deployment Templates One Stop repository for Docker Compose and Docker Templates for Deployment. Features Python (FastAPI, Flask) Screenshots D

    CodeChef-VIT 6 Aug 28, 2022
    A simple python application for running a CI pipeline locally This app currently supports GitLab CI scripts

    🏃 Simple Local CI Runner 🏃 A simple python application for running a CI pipeline locally This app currently supports GitLab CI scripts ⚙️ Setup Inst

    Tom Stowe 0 Jan 11, 2022
    This Docker container is build to run on a server an provide an easy to use interface for every student to vote for their councilors

    This Docker container is build to run on a server and provide an easy to use interface for every student to vote for their councilors.

    Robin Adelwarth 7 Nov 23, 2022
    Manage your azure VM easily!

    Azure-manager Manage your VM in Azure using cookies.

    Team 1injex 129 Dec 17, 2022
    Let's learn how to build, release and operate your containerized applications to Amazon ECS and AWS Fargate using AWS Copilot.

    🚀 Welcome to AWS Copilot Workshop In this workshop, you'll learn how to build, release and operate your containerised applications to Amazon ECS and

    Donnie Prakoso 15 Jul 14, 2022
    Wiremind Kubernetes helper

    Wiremind Kubernetes helper This Python library is a high-level set of Kubernetes Helpers allowing either to manage individual standard Kubernetes cont

    Wiremind 3 Oct 09, 2021
    GitGoat enables DevOps and Engineering teams to test security products intending to integrate with GitHub

    GitGoat is an open source tool that was built to enable DevOps and Engineering teams to design and implement a sustainable misconfiguration prevention strategy. It can be used to test with products w

    Arnica 149 Dec 22, 2022
    Simple ssh overlay for easy, remote server management written in Python GTK with paramiko

    Simple "ssh" overlay for easy, remote server management written in Python GTK with paramiko

    kłapouch 3 May 01, 2022
    Python utility function to communicate with a subprocess using iterables: for when data is too big to fit in memory and has to be streamed

    iterable-subprocess Python utility function to communicate with a subprocess using iterables: for when data is too big to fit in memory and has to be

    Department for International Trade 5 Jul 10, 2022
    HB Case Study

    HB Case Study Envoy Proxy It is a modern Layer7(App) and Layer3(TCP) proxy Incredibly modernized version of reverse proxies like NGINX, HAProxy It is

    Ilker Ispir 1 Oct 22, 2021
    Bitnami Docker Image for Python using snapshots for the system packages repositories

    Python Snapshot packaged by Bitnami What is Python Snapshot? Python is a programming language that lets you work quickly and integrate systems more ef

    Bitnami 1 Jan 13, 2022
    Build Netbox as a Docker container

    netbox-docker The Github repository houses the components needed to build Netbox as a Docker container. Images are built using this code and are relea

    Farshad Nick 1 Dec 18, 2021
    Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:

    Latest Salt Documentation Open an issue (bug report, feature request, etc.) Salt is the world’s fastest, most intelligent and scalable automation engi

    SaltStack 12.9k Jan 04, 2023
    Visual disk-usage analyser for docker images

    whaler What? A command-line tool for visually investigating the disk usage of docker images Why? Large images are slow to move and expensive to store.

    Treebeard Technologies 194 Sep 01, 2022
    Create pinned requirements.txt inside a Docker image using pip-tools

    Pin your Python dependencies! pin-requirements.py is a script that lets you pin your Python dependencies inside a Docker container. Pinning your depen

    4 Aug 18, 2022
    MagTape is a Policy-as-Code tool for Kubernetes that allows for evaluating Kubernetes resources against a set of defined policies to inform and enforce best practice configurations.

    MagTape is a Policy-as-Code tool for Kubernetes that allows for evaluating Kubernetes resources against a set of defined policies to inform and enforce best practice configurations. MagTape includes

    T-Mobile 143 Dec 27, 2022
    Checkmk kube agent - Checkmk Kubernetes Cluster and Node Collectors

    Checkmk Kubernetes Cluster and Node Collectors Checkmk cluster and node collecto

    tribe29 GmbH 15 Dec 26, 2022
    🐳 RAUDI: Regularly and Automatically Updated Docker Images

    🐳 RAUDI: Regularly and Automatically Updated Docker Images RAUDI (Regularly and Automatically Updated Docker Images) automatically generates and keep

    SecSI 534 Dec 29, 2022
    Manage your SSH like a boss.

    --- storm is a command line tool to manage your ssh connections. features adding, editing, deleting, listing, searching across your SSHConfig. command

    Emre Yılmaz 3.9k Jan 03, 2023