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
    Copy a Kubernetes pod and run commands in its environment

    copypod Utility for copying a running Kubernetes pod so you can run commands in a copy of its environment, without worrying about it the pod potential

    Memrise 4 Apr 08, 2022
    Remote Desktop Protocol in Twisted Python

    RDPY Remote Desktop Protocol in twisted python. RDPY is a pure Python implementation of the Microsoft RDP (Remote Desktop Protocol) protocol (client a

    Sylvain Peyrefitte 1.6k Dec 30, 2022
    DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

    DAMPP (gui) is a Python based program to run simple webservers using MySQL, Php, Apache and PhpMyAdmin inside of Docker containers.

    Sehan Weerasekara 1 Feb 19, 2022
    CI repo for building Skia as a shared library

    Automated Skia builds This repo is dedicated to building Skia binaries for use in Skija. Prebuilt binaries Prebuilt binaries can be found in releases.

    Humble UI 20 Jan 06, 2023
    Autoscaling volumes for Kubernetes (with the help of Prometheus)

    Kubernetes Volume Autoscaler (with Prometheus) This repository contains a service that automatically increases the size of a Persistent Volume Claim i

    DevOps Nirvana 142 Dec 28, 2022
    A cron monitoring tool written in Python & Django

    Healthchecks Healthchecks is a cron job monitoring service. It listens for HTTP requests and email messages ("pings") from your cron jobs and schedule

    Healthchecks 5.8k Jan 02, 2023
    🐳 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
    Build and Push docker image in Python (luigi + docker-py)

    Docker build images workflow in Python Since docker hub stopped building images for free accounts, I've been looking for another way to do it. I could

    Fabien D. 2 Dec 15, 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
    A basic instruction for Kubernetes setup and understanding.

    A basic instruction for Kubernetes setup and understanding Module ID Module Guide - Install Kubernetes Cluster k8s-install 3 Docker Core Technology mo

    648 Jan 02, 2023
    Hw-ci - Hardware CD/CI and Development Container

    Hardware CI & Dev Containter These containers were created for my personal hardware development projects and courses duing my undergraduate degree. Pl

    Matthew Dwyer 6 Dec 25, 2022
    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
    This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase.

    COA DevOps Training UseCase This projects provides the documentation and the automation(code) for the Oracle EMEA WLA COA Demo UseCase. Demo environme

    Cosmin Tudor 1 Jan 28, 2022
    sysctl/sysfs settings on a fly for Kubernetes Cluster. No restarts are required for clusters and nodes.

    SysBindings Daemon Little toolkit for control the sysctl/sysfs bindings on Kubernetes Cluster on the fly and without unnecessary restarts of cluster o

    Wallarm 19 May 06, 2022
    Automatically capture your Ookla Speedtest metrics and display them in a Grafana dashboard

    Speedtest All-In-One Automatically capture your Ookla Speedtest metrics and display them in a Grafana dashboard. Getting Started About This Code This

    Aaron Melton 2 Feb 22, 2022
    pyinfra automates infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployment, configuration management and more.

    pyinfra automates/provisions/manages/deploys infrastructure super fast at massive scale. It can be used for ad-hoc command execution, service deployme

    Nick Barrett 2.1k Dec 29, 2022
    CTF infrastructure deployment automation tool.

    CTF infrastructure deployment automation tool. Focus on the challenges. Mirrored from

    Fake News 1 Apr 12, 2022
    Learning and experimenting with Kubernetes

    Kubernetes Experiments This repository contains code that I'm using to learn and experiment with Kubernetes. 1. Environment setup minikube kubectl doc

    Richard To 10 Dec 02, 2022
    A lobby boy will create a VPS server when you need one, and destroy it after using it.

    Lobbyboy What is a lobby boy? A lobby boy is completely invisible, yet always in sight. A lobby boy remembers what people hate. A lobby boy anticipate

    226 Dec 29, 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