Code change:
<ins> import ./make-test-python.nix ( { lib, pkgs, ... }: let # this is a demo user created by IDM_CREATE_DEMO_USERS=true demoUser = "einstein"; demoPassword = "relativity"; adminUser = "admin"; adminPassword = "hunter2"; testRunner = pkgs.writers.writePython3Bin "test-runner" { libraries = [ pkgs.python3Packages.selenium ]; flakeIgnore = [ "E501" ]; } '' import sys from selenium.webdriver.common.by import By from selenium.webdriver import Firefox from selenium.webdriver.firefox.options import Options from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC options = Options() options.add_argument('--headless') driver = Firefox(options=options) user = sys.argv[1] password = sys.argv[2] driver.implicitly_wait(20) driver.get('https://localhost:9200/login') wait = WebDriverWait(driver, 10) wait.until(EC.title_contains("Sign in")) driver.find_element(By.XPATH, '//*[@id="oc-login-username"]').send_keys(user) driver.find_element(By.XPATH, '//*[@id="oc-login-password"]').send_keys(password) driver.find_element(By.XPATH, '//*[@id="root"]//button').click() wait.until(EC.title_contains("Personal")) ''; # This was generated with `ocis init --config-path testconfig/ --admin-password "hunter2" --insecure true`. testConfig = '' token_manager: jwt_secret: kaKYgfso*d9GA-yTM.&BTOUEuMz%Ai0H machine_auth_api_key: sGWRG1JZ&qe&pe@N1HKK4#qH*B&@xLnO system_user_api_key: h+m4aHPUtOtUJFKrc5B2=04C=7fDZaT- transfer_secret: 4-R6AfUjQn0P&+h2+$skf0lJqmre$j=x system_user_id: db180e0a-b38a-4edf-a4cd-a3d358248537 admin_user_id: ea623f50-742d-4fd0-95bb-c61767b070d4 graph: application: id: 11971eab-d560-4b95-a2d4-50726676bbd0 events: tls_insecure: true spaces: insecure: true identity: ldap: bind_password: ^F&Vn7@mYGYGuxr$#qm^gGy@FVq=.w=y service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE idp: ldap: bind_password: bv53IjS28x.nxth*%aRbE70%4TGNXbLU idm: service_user_passwords: admin_password: hunter2 idm_password: ^F&Vn7@mYGYGuxr$#qm^gGy@FVq=.w=y reva_password: z-%@fWipLliR8lD#fl.0teC#9QbhJ^eb idp_password: bv53IjS28x.nxth*%aRbE70%4TGNXbLU proxy: oidc: insecure: true insecure_backends: true service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE frontend: app_handler: insecure: true archiver: insecure: true service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE auth_basic: auth_providers: ldap: bind_password: z-%@fWipLliR8lD#fl.0teC#9QbhJ^eb auth_bearer: auth_providers: oidc: insecure: true users: drivers: ldap: bind_password: z-%@fWipLliR8lD#fl.0teC#9QbhJ^eb groups: drivers: ldap: bind_password: z-%@fWipLliR8lD#fl.0teC#9QbhJ^eb ocdav: insecure: true ocm: service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE thumbnails: thumbnail: transfer_secret: 2%11!zAu*AYE&=d*8dfoZs8jK&5ZMm*% webdav_allow_insecure: true cs3_allow_insecure: true search: events: tls_insecure: true service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE audit: events: tls_insecure: true settings: service_account_ids: - df39a290-3f3e-4e39-b67b-8b810ca2abac sharing: events: tls_insecure: true storage_users: events: tls_insecure: true mount_id: ef72cb8b-809c-4592-bfd2-1df603295205 service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE notifications: notifications: events: tls_insecure: true service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE nats: nats: tls_skip_verify_client_cert: true gateway: storage_registry: storage_users_mount_id: ef72cb8b-809c-4592-bfd2-1df603295205 userlog: service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE auth_service: service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE clientlog: service_account: service_account_id: df39a290-3f3e-4e39-b67b-8b810ca2abac service_account_secret: .demKypQ$=pGl+yRar!#YaFjLYCr4YwE''; in { name = "ocis"; meta.maintainers = with lib.maintainers; [ bhankas ramblurr ]; nodes.machine = { config, ... }: { virtualisation.memorySize = 2048; environment.systemPackages = [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ]; # if you do this in production, dont put secrets in this file because it will be written to the world readable nix store environment.etc."ocis/ocis.env".text = '' ADMIN_PASSWORD=${adminPassword} IDM_CREATE_DEMO_USERS=true ''; # if you do this in production, dont put secrets in this file because it will be written to the world readable nix store environment.etc."ocis/config/ocis.yaml".text = testConfig; services.ocis = { enable = true; configDir = "/etc/ocis/config"; environment = { OCIS_INSECURE = "true"; }; environmentFile = "/etc/ocis/ocis.env"; }; }; testScript = '' start_all() machine.wait_for_unit("ocis.service") machine.wait_for_open_port(9200) # wait for ocis to fully come up machine.sleep(5) with subtest("ocis bin works"): machine.succeed("${lib.getExe pkgs.ocis-bin} version") with subtest("use the web interface to log in with a demo user"): machine.succeed("PYTHONUNBUFFERED=1 systemd-cat -t test-runner test-runner ${demoUser} ${demoPassword}") with subtest("use the web interface to log in with the provisioned admin user"): machine.succeed("PYTHONUNBUFFERED=1 systemd-cat -t test-runner test-runner ${adminUser} ${adminPassword}") ''; } ) </ins>

Related discussion:
text: "ownCloud Infinite Scale Stack" or owncloud rewritten in Go. <!-- Describe the project a little: --Metadata homepage URL: source URL: license: asl20 platforms: unix
There are some hassles to deal with on this one. PNPM usage: Image assets downloaded with curl (and no hashes or revisions) Code generation tools and code repositories downloaded by
Note that ownCloud provide prebuilt binaries for oCIS. It's fairly simple to get these working on NixOS: Perhaps this can be used as a temporary solution until we can build it ourselves?
I used your derivation and opened . I tested it a bit, and will work on a proper module over next few days/weeks, can you share if you are already using above derivation, and if yes, how stable are rc releases?
I've been using the rc for a while and haven't had any major issues. It's probably better to go with the stable release by default though. Perhaps we could package both?
Has the situation changed where the OCIS can be built from source now? I'd rather not use a proprietary binary.