{"id":19398894,"url":"https://github.com/pschiffe/docker-burp","last_synced_at":"2025-04-24T06:31:37.082Z","repository":{"id":80759477,"uuid":"78454042","full_name":"pschiffe/docker-burp","owner":"pschiffe","description":"Server, client and web ui Docker images for Burp","archived":false,"fork":false,"pushed_at":"2024-01-12T16:28:24.000Z","size":64,"stargazers_count":16,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-21T09:57:36.044Z","etag":null,"topics":["backup","burp","burp-client","burp-server","burp-ui","docker","docker-compose","docker-images","encryption","rsync"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/pschiffe/burp-server/","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pschiffe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-01-09T17:54:53.000Z","updated_at":"2025-04-09T10:11:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae7dfd9e-6800-47e3-aca4-519b158be98d","html_url":"https://github.com/pschiffe/docker-burp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschiffe%2Fdocker-burp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschiffe%2Fdocker-burp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschiffe%2Fdocker-burp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pschiffe%2Fdocker-burp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pschiffe","download_url":"https://codeload.github.com/pschiffe/docker-burp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250578132,"owners_count":21453250,"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":["backup","burp","burp-client","burp-server","burp-ui","docker","docker-compose","docker-images","encryption","rsync"],"created_at":"2024-11-10T11:07:36.039Z","updated_at":"2025-04-24T06:31:36.796Z","avatar_url":"https://github.com/pschiffe.png","language":"Smarty","funding_links":["https://github.com/sponsors/pschiffe","https://img.shields.io/badge/paypal.me-grey?logo=paypal","https://www.paypal.com/paypalme/pschiffe"],"categories":[],"sub_categories":[],"readme":"# Burp Backup in Docker\n\nThis repository contains Docker images for the [Burp 2.x](http://burp.grke.org/) server, client, and [web UI](https://git.ziirish.me/ziirish/burp-ui). All images are available at Docker Hub:\n\nhttps://hub.docker.com/r/pschiffe/burp-server/\n\nhttps://hub.docker.com/r/pschiffe/burp-client/\n\nhttps://hub.docker.com/r/pschiffe/burp-ui/\n\nSource GitHub repository: https://github.com/pschiffe/docker-burp\n\n---\n[![Static Badge](https://img.shields.io/badge/GitHub_Sponsors-grey?logo=github)](https://github.com/sponsors/pschiffe) [![Static Badge](https://img.shields.io/badge/paypal.me-grey?logo=paypal)](https://www.paypal.com/paypalme/pschiffe)\n\nIf this project is useful to you, please consider sponsoring me to support maintenance and further development. Thank you!\n\n## Burp Server\n\n![Docker Image Size (tag)](https://img.shields.io/docker/image-size/pschiffe/burp-server/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/pschiffe/burp-server)\n\nhttps://hub.docker.com/r/pschiffe/burp-server/\n\nThe Burp server image includes optional encryption, secure rsync to a remote location, and a [bui-agent](https://burp-ui.readthedocs.io/en/latest/buiagent.html) for the web UI.\n\n### Persistent data\n\nThe container utilizes two persistent volumes: `/etc/burp` for configuration files and `/var/spool/burp` for storing backups.\n\n### Systemd\n\nSystemd is used to manage multiple processes within the container. This requires `/run` and `/tmp` to be mounted on `tmpfs`, and currently, the container must run with privileged access. Example Docker run bit when running on Red Hat based distro: `--tmpfs /run --tmpfs /tmp --privileged`\n\nIf you are using SELinux on the host, you need to enable the `container_manage_cgroup` variable with `setsebool -P container_manage_cgroup 1`.\n\nAdditionally, if you want to see the logs with the `docker logs` command, allocate a tty for the container with the `-t, --tty` option.\n\n### Adding clients\n\nThe client configuration can be automatically generated on the server using the `BURP_CLIENTS_CONFIG` environment variable. The format of this variable is: `'client1-hostname:client1-password client2-hostname:client2-password ...'`\n\n### Example\n\n```\ndocker run -dt -p 4971:4971 --name burp-server \\\n  -v burp-server-conf:/etc/burp \\\n  -v burp-server-data:/var/spool/burp \\\n  -e 'BURP_CLIENTS_CONFIG=host1:pass1 host2:pass2 host3:pass3'\n  --tmpfs /run --tmpfs /tmp --privileged \\\n  pschiffe/burp-server\n```\n\n### Encryption\n\nYou can encrypt backup data using `EncFS`. To use it, simply provide encryption password in `ENCRYPT_PASSWORD` env var. Because the EncFS is fuse fs, you need to expose the `/dev/fuse` to the container with `--device /dev/fuse`, provide additional capability and possibly disable selinux (or apparmor) confinement with `--cap-add SYS_ADMIN --security-opt label:disable`.\n\n### Rsync to remote location\n\nTo regularly synchronize your backup data with a remote location, you can utilize the built-in Rsync support. With `RSYNC_DEST` env var specify remote location in format `rsync://user@server/path`. Password for rsync user can be provided in `RSYNC_PASS` env var. If the remote location provides rsync secured with stunnel, you can use that as well. Specify remote server and port in `STUNNEL_RSYNC_HOST` env var in format `server:port` and then, change the server part of the `RSYNC_DEST` to `localhost`, as in `rsync://user@localhost/path`.\n\nIf at least `RSYNC_DEST` env var is set, timer script in the container will try to rsync the local data to the remote location at around 6 AM every morning (this can be modified in `/etc/systemd/system/rsync-sync.timer` file).\n\nAnd that's not all, there is one more feature - if you set `RESTORE_FROM_RSYNC` env var to `1` and `/var/spool/burp` directory is empty, the container will try to download all the data from remote location with rsync (required rsync connection env vars must be set).\n\n## Burp Web UI\n\n![Docker Image Size (tag)](https://img.shields.io/docker/image-size/pschiffe/burp-ui/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/pschiffe/burp-ui)\n\nhttps://hub.docker.com/r/pschiffe/burp-ui/\n\nThe Burp UI image contains an awesome [web UI for Burp created by Ziirish](https://git.ziirish.me/ziirish/burp-ui). If you're running this container on the same host as the Burp server, you can link this container to the Burp server using the alias `burp`. This is essentially all you need to do. The web service is listening on port `5000`. If you want to manage the Burp server on a different host, you first need to specify the `BUI_AGENT_PASSWORD` environment variable and expose port `10000` of the **burp-server** container. Then, you need to manually edit the `/etc/burp/burpui.cfg.tpl` file in the burp-ui container and add a new `[Agent:name]` section to it. Be sure to update the template file `burpui.cfg.tpl` as the `burpui.cfg` file is overwritten every time the container starts.\n\n### Persistent data\n\n`/etc/burp` directory contains configuration for this container.\n\n### Example\n\n```\ndocker run -d -p 5000:5000 --name burp-ui \\\n  -v burp-ui-conf:/etc/burp \\\n  --link burp-server:burp \\\n  pschiffe/burp-ui\n```\n\n## Burp Client\n\n![Docker Image Size (tag)](https://img.shields.io/docker/image-size/pschiffe/burp-client/latest) ![Docker Pulls](https://img.shields.io/docker/pulls/pschiffe/burp-client)\n\nhttps://hub.docker.com/r/pschiffe/burp-client/\n\nTo back up data and send it to the Burp server, you need the Burp client. Usage of this image is pretty simple. With the `BURP_SERVER` and `BURP_SERVER_PORT` environment variables, you can specify the address and port of the Burp server. The client password goes in the `BURP_CLIENT_PASSWORD` environment variable, and everything you need to back up should be mounted to the `/tobackup` directory in the container. Be aware, however, that you might need to use the `--security-opt label:disable` option when accessing various system directories on the host. It's also possible to link the client to the Burp server container with the alias `burp`. I recommend setting the container hostname to something meaningful, as the client will be identified by its hostname in the Burp server configuration.\n\n### Persistent data\n\n`/etc/burp` persistent directory in the container stores Burp client configuration.\n\n### Example\n\n```\ndocker run -d --name burp-client \\\n  -e BURP_SERVER=some-server.host \\\n  -e BURP_CLIENT_PASSWORD=super-secret \\\n  -v burp-client-conf:/etc/burp \\\n  -v /etc:/tobackup/somehost-etc:ro \\\n  -v /home:/tobackup/somehost-home:ro \\\n  -v some-docker-vol:/tobackup/some-docker-vol:ro \\\n  --hostname $HOSTNAME \\\n  --security-opt label:disable \\\n  pschiffe/burp-client\n```\n\nOnce this container is started, it backs up the specified data and exits. After that, I recommend starting the container approximately every 20 minutes using `docker start burp-client`. This allows the container to check with the server and back up new files if scheduled. Please note that the backup schedule is determined by the server, not the client.\n\n### Data recovery\n\nYou can also use this container to recover data from a remote server. You simply need to provide arguments in the same way you would for a regular Burp client CLI, for example:\n```\ndocker run -d --name burp-client \\\n  -e BURP_SERVER=some-server.host \\\n  -e BURP_CLIENT_PASSWORD=super-secret \\\n  -v burp-client-conf:/etc/burp \\\n  -v /etc:/tobackup/somehost-etc \\\n  --hostname $HOSTNAME \\\n  --security-opt label:disable \\\n  pschiffe/burp-client \\\n  -al /tobackup/somehost-etc\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpschiffe%2Fdocker-burp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpschiffe%2Fdocker-burp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpschiffe%2Fdocker-burp/lists"}