{"id":16568709,"url":"https://github.com/drupol/nix-oracle-db","last_synced_at":"2025-10-29T00:31:48.046Z","repository":{"id":218684162,"uuid":"747076936","full_name":"drupol/nix-oracle-db","owner":"drupol","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-30T07:07:57.000Z","size":66,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T20:45:01.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drupol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-23T08:09:57.000Z","updated_at":"2024-11-20T09:16:53.000Z","dependencies_parsed_at":"2024-02-12T10:53:13.147Z","dependency_job_id":null,"html_url":"https://github.com/drupol/nix-oracle-db","commit_stats":null,"previous_names":["drupol/nix-oracle-db"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drupol%2Fnix-oracle-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drupol%2Fnix-oracle-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drupol%2Fnix-oracle-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drupol%2Fnix-oracle-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drupol","download_url":"https://codeload.github.com/drupol/nix-oracle-db/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238751235,"owners_count":19524536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T21:11:27.991Z","updated_at":"2025-10-29T00:31:47.739Z","avatar_url":"https://github.com/drupol.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Oracle Database on Nix\n\nThe goal of this project is to provide a Nix flake that can be used to build\nand use Oracle Database on Nix.\n\nOnce the flake is in a working state, it will be published to `nixpkgs`. It is\ncurrently provided in a flake instead of a pull request to foster quick and rapid\nexternal contributions.\n\n## Usage\n\nThe only exposed package of this flake is `oracle-database`, there's also a `default`\noverlay and a NixOS module.\n\n## NixOS Module\n\nThe following modules are exposed:\n\n- `oracle-database` (not working yet)\n- `oracle-database-container`\n\nTo use a module, add this project in your flake `inputs`:\n\n```nix\nnix-oracle-db.url = \"github:drupol/nix-oracle-db\";\n```\n\nThen, add of of the exposed module in your `configuration.nix`:\n\n```nix\n# The configuration here is an example; it will look slightly different\n# based on your platform (NixOS, nix-darwin) and architecture.\nnixosConfigurations.your-box = nixpkgs.lib.nixosSystem {\n    system = \"x86_64-linux\"\n\n    modules = [\n        # This is the important part -- add this line to your module list!\n        inputs.nix-oracle-db.nixosModules.oracle-database-container\n    ];\n};\n```\n\nAnd finally, enable the service:\n\n```nix\n\nservices.oracle-database-container = {\n    enable = true;\n    openFirewall = true;\n    volumeName = \"oracledb\";\n};\n```\n\nThe current implementation uses Podman. Switching between Docker and Podman will\nbe possible in the future.\n\n## Limitations\n\nThe Oracle Database container cannot expose the database files to a local\ndirectory. This issue arises because the user-mounted volume is empty, while\nOracle expects a very specific file and directory structure within it. To\nresolve this, we would need to copy the necessary files from the container to\nthe host, and then run the container with the mounted volume. Unfortunately, I\nhave not yet found an elegant solution to this problem.\n\nMore info on this at:\n\n- https://github.com/oracle/docker-images/issues/1533\n- https://github.com/oracle/docker-images/issues/640\n- https://github.com/OxalisCommunity/oxalis/issues/440\n\nI tested a successful workaround by copying the files from the container to the\nhost before running the container, but I'm not yet satisfied:\n\n```bash\n    ${lib.getExe pkgs.podman} rm --force --ignore oracledbtmp\n    ${lib.getExe pkgs.podman} create --name oracledbtmp container-registry.oracle.com/database/free:${cfg.version}\n    ${lib.getExe pkgs.podman} cp oracledbtmp:/opt/oracle/oradata ${cfg.volumeName}/\n    chmod -R 777 ${cfg.volumeName}/oradata\n```\n\n## Test\n\nUse `nix build .#oracle-database-test -L`\n\n## Status\n\nBasic binaries are working! I don't like the current implementation, I hope I\nwill find a better solution in the upcoming days.\n\n## Useful links\n\n- https://docs.oracle.com/en/database/oracle/oracle-database/23/xeinl/database-free-installation-guide-linux.pdf\n- https://github.com/gvenzl/oci-oracle-free\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrupol%2Fnix-oracle-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrupol%2Fnix-oracle-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrupol%2Fnix-oracle-db/lists"}