Skip to content

feat: enable IPv6 on 1panel-network by default#12277

Open
jakub961241 wants to merge 1 commit into1Panel-dev:dev-v2from
jakub961241:feat/docker-ipv6-network-12202
Open

feat: enable IPv6 on 1panel-network by default#12277
jakub961241 wants to merge 1 commit into1Panel-dev:dev-v2from
jakub961241:feat/docker-ipv6-network-12202

Conversation

@jakub961241
Copy link

Summary

Closes #12202 - Enable IPv6 dual-stack on 1panel-network by default.

Before

EnableIPv6: new(bool)  // pointer to false - IPv6 explicitly disabled

After

EnableIPv6: &enableIPv6  // true
IPAM: {
    Config: [
        {Subnet: "172.18.0.0/16", Gateway: "172.18.0.1"},       // IPv4
        {Subnet: "fd00:1panel::/64", Gateway: "fd00:1panel::1"}, // IPv6 ULA
    ]
}

Uses ULA (Unique Local Address) range fd00:1panel::/64 - no public IPv6 required, works for internal container networking.

Note: Only affects new installations or networks created after this change. Existing users need to recreate the network manually.

Changed file

  • agent/utils/docker/docker.go (+8, -1)
feat: Enable IPv6 dual-stack support on 1panel-network by default (#12202)

When creating the 1panel-network Docker bridge, IPv6 was explicitly
disabled (EnableIPv6: new(bool) = pointer to false). Users wanting
IPv6 had to manually recreate the network.

Now 1panel-network is created with dual-stack support:
- IPv4: 172.18.0.0/16 (gateway 172.18.0.1)
- IPv6: fd00:1panel::/64 (gateway fd00:1panel::1)

Uses ULA (Unique Local Address) range which doesn't require public
IPv6 allocation and works for internal container-to-container
communication.

Note: Existing installations are not affected - this only applies when
the network is first created. To upgrade, stop all containers, delete
1panel-network, and restart 1Panel.

Closes 1Panel-dev#12202
@f2c-ci-robot
Copy link

f2c-ci-robot bot commented Mar 22, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign wanghe-fit2cloud for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@HynoR
Copy link
Contributor

HynoR commented Mar 22, 2026

have you checked or compiled your code branch in the test environment?

@jakub961241
Copy link
Author

@HynoR Fair question. This change has not been tested in a running 1Panel environment — I don't have a test instance set up at the moment.

The change itself is minimal and straightforward:

  • EnableIPv6: new(bool) (pointer to false) → EnableIPv6: &enableIPv6 (pointer to true)
  • Added IPAM config with dual-stack subnets

The Docker SDK types are well-documented and this follows the standard pattern for creating dual-stack bridge networks. However, I'd appreciate if a maintainer or community member could verify it on a test instance before merging.

One potential concern: the hardcoded 172.18.0.0/16 subnet could conflict if the user already has a Docker network on that range. The previous code let Docker auto-assign the subnet. If maintainers prefer, I can remove the explicit IPv4 IPAM config and only add the IPv6 subnet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Docker can enable IPv6 support by default. For existing installations, it can be enabled by following these steps

2 participants