├── .Dockerfile.swp ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug-report.yml │ ├── config.yml │ └── feature-request.yml └── workflows │ └── build-image.yml ├── Dockerfile ├── README.md └── rootfs ├── .startapp.sh.swp ├── defaults └── cfg │ ├── laf │ └── FlatDarculaLaf.json │ ├── org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json │ ├── org.jdownloader.gui.jdtrayicon.TrayExtension.json │ ├── org.jdownloader.gui.notify.gui.BubbleNotifyConfig.json │ ├── org.jdownloader.gui.views.linkgrabber.addlinksdialog.LinkgrabberSettings.downloaddestinationhistory.json │ ├── org.jdownloader.gui.views.linkgrabber.addlinksdialog.LinkgrabberSettings.json │ ├── org.jdownloader.settings.GeneralSettings.json │ └── org.jdownloader.settings.GraphicalUserInterfaceSettings.json ├── etc ├── cont-env.d │ └── INSTALL_PACKAGES_INTERNAL ├── cont-init.d │ └── 55-jdownloader2.sh ├── openbox │ └── main-window-selection.xml └── services.d │ └── app │ └── gui.dep └── startapp.sh /.Dockerfile.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravsuman007/megabasterd-docker/b6290970b39f8ff8f0d999db068731c8595a91e0/.Dockerfile.swp -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: jlesage 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ["https://paypal.me/JocelynLeSage", "https://www.tesla.com/referral/jocelyn4590"] 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 2 | description: File a bug report. 3 | title: "[Bug] Provide a short description of the bug here" 4 | labels: ["bug"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out this bug report! 10 | - type: textarea 11 | attributes: 12 | label: Current Behavior 13 | description: A concise description of what you're experiencing. 14 | validations: 15 | required: true 16 | - type: textarea 17 | attributes: 18 | label: Expected Behavior 19 | description: A concise description of what you expected to happen. 20 | validations: 21 | required: false 22 | - type: textarea 23 | attributes: 24 | label: Steps To Reproduce 25 | description: Steps to reproduce the behavior. 26 | validations: 27 | required: false 28 | - type: textarea 29 | attributes: 30 | label: Environment 31 | description: | 32 | Provide details about the host running the container. 33 | Examples: 34 | - Operating system (e.g. Ubuntu, Windows, TrueNAS, openmediavault, unRAID, etc). 35 | - Version of the operating system. 36 | - CPU architecture (x86-64, arm, arm64, etc). 37 | - Model of the device, if applicable (e.g. Raspberry Pi 4B, Synology DS418, QNAP TS-364, etc). 38 | - The Docker version (output of `docker version`). 39 | - Anything else specific to your environment. Examples: 40 | - Network share (NFS, CIFS) mapped to the container. 41 | - Docker running in LXC container. 42 | - etc. 43 | - If applicable, how the UI provided by the container is access: 44 | - Browser (Chrome, Firefox, Edge, etc). 45 | - Version of the browser. 46 | - OS of the browser. 47 | - Is the container accessed through a reverse proxy. 48 | - etc. 49 | value: | 50 | - OS: 51 | - OS version: 52 | - CPU: 53 | - Docker version: 54 | - Device model: 55 | - Browser/OS: 56 | validations: 57 | required: false 58 | - type: textarea 59 | attributes: 60 | label: Container creation 61 | description: | 62 | How did you create the container ? 63 | Examples: 64 | - The `docker run` command used. 65 | - The compose file used. 66 | - Screenshots of the management tool UI (e.g. Portainer, unRAID, etc) showing container settings. 67 | validations: 68 | required: true 69 | - type: textarea 70 | attributes: 71 | label: Container log 72 | description: Please copy/paste the output of `docker logs `. 73 | render: text 74 | validations: 75 | required: true 76 | - type: textarea 77 | attributes: 78 | label: Container inspect 79 | description: | 80 | If the container is running, please provide the output of `docker inspect `. 81 | **Attention**: If you defined passwords, secrets or any sensitive information via environment variables, make sure to remove them from the output. 82 | render: text 83 | validations: 84 | required: false 85 | - type: textarea 86 | attributes: 87 | label: Anything else? 88 | description: | 89 | Anything that will give more context about the issue you are encountering. 90 | 91 | Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. 92 | validations: 93 | required: false 94 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question, discuss 4 | url: https://github.com/jlesage/docker-jdownloader-2/discussions 5 | about: Get help using this Docker container. 6 | - name: Documentation 7 | url: https://github.com/jlesage/docker-jdownloader-2#readme 8 | about: Documentation about this Docker container. 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- 1 | name: Feature request 2 | description: Suggest an idea for this project. 3 | title: "[Feature request] Provide a short description of the feature here" 4 | labels: ["enhancement"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thank you for suggesting an idea to make this project better. 10 | - type: textarea 11 | attributes: 12 | label: Idea 13 | description: | 14 | Please describe the desired behavior, pitch your idea, or suggest improvements. 15 | validations: 16 | required: true 17 | -------------------------------------------------------------------------------- /.github/workflows/build-image.yml: -------------------------------------------------------------------------------- 1 | name: Docker image CI/CD 2 | 3 | concurrency: 4 | group: ${{ github.workflow }}-${{ github.ref }} 5 | cancel-in-progress: true 6 | 7 | env: 8 | DOCKER_IMAGE_NAME: jlesage/jdownloader-2 9 | PLATFORMS: linux/amd64,linux/386,linux/arm64/v8 10 | 11 | on: 12 | push: 13 | branches: '*' 14 | tags: 15 | - v[0-9][0-9].[0-9][0-9].[0-9]+ 16 | - v[0-9][0-9].[0-9][0-9].[0-9]+-pre.[0-9]+ 17 | pull_request: 18 | 19 | jobs: 20 | build: 21 | name: Build image 22 | runs-on: ubuntu-20.04 23 | 24 | steps: 25 | - name: Free disk space 26 | run: | 27 | # Free disk space. 28 | echo "::group::Before" 29 | df -h / 30 | echo "::endgroup::" 31 | echo "::group::Removing unneeded softwares and files..." 32 | for DIR in /usr/local/lib/android /usr/share/dotnet /opt/ghc 33 | do 34 | if [ -d "$DIR" ]; then 35 | echo "Removing $DIR..." 36 | sudo rm -r "$DIR" 37 | fi 38 | done 39 | echo "::endgroup::" 40 | echo "::group::After" 41 | df -h / 42 | echo "::endgroup::" 43 | 44 | - name: Prepare 45 | id: prep 46 | run: | 47 | # Determine the Docker container version. 48 | VERSION=unknown 49 | if [[ $GITHUB_REF =~ refs/tags/* ]]; then 50 | # Git tag pushed: use tag as the version. 51 | VERSION=${GITHUB_REF#refs/tags/} 52 | elif [[ $GITHUB_REF =~ refs/heads/* ]]; then 53 | # Git commit pushed: use the commit SHA as the version. 54 | VERSION=${GITHUB_SHA::8} 55 | elif [[ $GITHUB_REF =~ refs/pull/* ]]; then 56 | # Pull request: use PR number as the version. 57 | VERSION=pr-${{ github.event.number }} 58 | else 59 | echo "::error::Unexpected GITHUB_REF: $GITHUB_REF" 60 | exit 1 61 | fi 62 | # Determine the version to put in container label. 63 | LABEL_VERSION=${VERSION} 64 | if [[ $GITHUB_REF =~ refs/tags/* ]]; then 65 | # Do not include the starting 'v' of the version. 66 | LABEL_VERSION=${VERSION:1} 67 | fi 68 | # Determine the Docker container tags. 69 | TAGS="${{ env.DOCKER_IMAGE_NAME }}:${VERSION}" 70 | if [[ $GITHUB_REF =~ refs/tags/* ]]; then 71 | TAGS="$TAGS,${{ env.DOCKER_IMAGE_NAME }}:latest" 72 | fi 73 | # Determine the release type. 74 | if [[ $GITHUB_REF =~ refs/tags/* ]]; then 75 | IS_RELEASE=yes 76 | if [[ $GITHUB_REF =~ -pre\.[0-9]+ ]]; then 77 | RELEASE_TYPE="pre" 78 | else 79 | RELEASE_TYPE="standard" 80 | fi 81 | else 82 | IS_RELEASE=no 83 | RELEASE_TYPE="n/a" 84 | fi 85 | # Print results. 86 | echo "::group::Results" 87 | echo "Github reference: $GITHUB_REF" 88 | echo "Release: $IS_RELEASE" 89 | echo "Release type: $RELEASE_TYPE" 90 | echo "Docker container version: $VERSION" 91 | echo "Docker container version label: $LABEL_VERSION" 92 | echo "Docker container tag(s): $TAGS" 93 | echo "::endgroup::" 94 | # Export outputs. 95 | echo "is_release=${IS_RELEASE}" >> $GITHUB_OUTPUT 96 | echo "release_type=${RELEASE_TYPE}" >> $GITHUB_OUTPUT 97 | echo "version=${VERSION}" >> $GITHUB_OUTPUT 98 | echo "label_version=${LABEL_VERSION}" >> $GITHUB_OUTPUT 99 | echo "tags=${TAGS}" >> $GITHUB_OUTPUT 100 | #echo "build_date=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT 101 | 102 | - name: Setup QEMU 103 | uses: docker/setup-qemu-action@v2 104 | with: 105 | platforms: arm,arm64,ppc64le,mips64,s390x 106 | 107 | - name: Setup Docker Buildx 108 | uses: docker/setup-buildx-action@v2 109 | 110 | - name: Login to DockerHub 111 | if: ${{ steps.prep.outputs.is_release == 'yes' }} 112 | uses: docker/login-action@v2 113 | with: 114 | username: ${{ secrets.DOCKERHUB_USERNAME }} 115 | password: ${{ secrets.DOCKERHUB_PASSWORD }} 116 | 117 | - name: Build and push 118 | uses: docker/build-push-action@v4 119 | with: 120 | push: ${{ steps.prep.outputs.is_release == 'yes' }} 121 | provenance: false 122 | platforms: ${{ env.PLATFORMS }} 123 | tags: ${{ steps.prep.outputs.tags }} 124 | build-args: | 125 | DOCKER_IMAGE_VERSION=${{ steps.prep.outputs.label_version }} 126 | cache-from: type=gha,scope=${{ env.DOCKER_IMAGE_NAME }} 127 | cache-to: type=gha,mode=max,scope=${{ env.DOCKER_IMAGE_NAME }} 128 | 129 | - name: Inspect 130 | if: ${{ steps.prep.outputs.is_release == 'yes' }} 131 | run: | 132 | docker buildx imagetools inspect ${{ env.DOCKER_IMAGE_NAME }}:${{ steps.prep.outputs.version }} 133 | 134 | - name: Checkout 135 | uses: actions/checkout@v3 136 | if: ${{ steps.prep.outputs.release_type == 'standard' }} 137 | 138 | - name: Dockerhub description 139 | if: ${{ steps.prep.outputs.release_type == 'standard' }} 140 | uses: peter-evans/dockerhub-description@v3 141 | with: 142 | username: ${{ secrets.DOCKERHUB_USERNAME }} 143 | password: ${{ secrets.DOCKERHUB_PASSWORD }} 144 | repository: ${{ env.DOCKER_IMAGE_NAME }} 145 | readme-filepath: DOCKERHUB.md 146 | 147 | notification: 148 | name: Notification 149 | needs: [ build ] 150 | runs-on: ubuntu-20.04 151 | if: ${{ always() && github.event_name != 'pull_request' }} 152 | 153 | steps: 154 | - name: Pushover notification 155 | uses: desiderati/github-action-pushover@v1 156 | with: 157 | job-status: ${{ needs.build.result }} 158 | pushover-api-token: ${{ secrets.PUSHOVER_API_TOKEN }} 159 | pushover-user-key: ${{ secrets.PUSHOVER_USER_KEY }} 160 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # megabasterd Dockerfile 3 | # 4 | #https://github.com/gauravsuman007/megabasterd-docker.git 5 | # 6 | # NOTES: 7 | # - We are using JRE version 8 because recent versions are much bigger. 8 | # - JRE for ARM 32-bits on Alpine is very hard to get: 9 | # - The version in Alpine repo is very, very slow. 10 | # - The glibc version doesn't work well on Alpine with a compatibility 11 | # layer (gcompat or libc6-compat). The `__xstat` symbol is missing and 12 | # implementing a wrapper is not straight-forward because the `struct stat` 13 | # is not constant across architectures (32/64 bits) and glibc/musl. 14 | # 15 | 16 | # Docker image version is provided via build arg. 17 | ARG DOCKER_IMAGE_VERSION= 18 | 19 | # Define software download URLs. 20 | ARG VERSION=7.76 21 | ARG DOWNLOAD_URL=https://github.com/tonikelope/megabasterd/releases/download/v${VERSION}/MegaBasterdLINUX_${VERSION}_portable.zip 22 | 23 | # Download MegaBasterd 24 | FROM --platform=$BUILDPLATFORM alpine:3.16 AS alp 25 | ARG DOWNLOAD_URL 26 | RUN \ 27 | apk --no-cache add curl unzip && \ 28 | mkdir -p /defaults && \ 29 | cd /defaults && \ 30 | # curl -# -L -o /defaults/MegaBasterd.jar ${DOWNLOAD_URL} 31 | curl -# -L -o /defaults/MegaBasterd.zip ${DOWNLOAD_URL} && \ 32 | unzip -q MegaBasterd.zip && \ 33 | mv MegaBasterdLINUX/ MegaBasterd && \ 34 | rm -rf MegaBasterd/jre && \ 35 | # Cleanup. 36 | apk del unzip curl && \ 37 | rm -rf MegaBasterd.zip /tmp/* /tmp/.[!.]* 38 | 39 | # Pull base image. 40 | FROM jlesage/baseimage-gui:alpine-3.16-v4.4.2 41 | 42 | ARG DOCKER_IMAGE_VERSION 43 | 44 | # Define working directory. 45 | WORKDIR /tmp 46 | 47 | # Install dependencies. 48 | RUN \ 49 | add-pkg \ 50 | java-common \ 51 | openjdk8-jre \ 52 | # Needed by the init script. 53 | jq \ 54 | # We need a font. 55 | ttf-dejavu \ 56 | # For ffmpeg and ffprobe tools. 57 | #ffmpeg \ 58 | # For rtmpdump tool. 59 | rtmpdump \ 60 | # Need for the sponge tool. 61 | moreutils 62 | 63 | # Generate and install favicons. 64 | RUN \ 65 | APP_ICON_URL=https://cdn-icons-png.flaticon.com/256/873/873133.png && \ 66 | install_app_icon.sh "$APP_ICON_URL" 67 | 68 | # Add files. 69 | COPY rootfs/ / 70 | COPY --from=alp /defaults/MegaBasterd /defaults/MegaBasterd 71 | 72 | # Set internal environment variables. 73 | RUN \ 74 | set-cont-env APP_NAME "MegaBasterd" && \ 75 | set-cont-env DOCKER_IMAGE_VERSION "$DOCKER_IMAGE_VERSION" && \ 76 | true 77 | 78 | # Define mountable directories. 79 | VOLUME ["/output"] 80 | 81 | # Metadata. 82 | LABEL \ 83 | org.label-schema.name="MegaBasterd" \ 84 | org.label-schema.description="Docker container for MegaBasterd" \ 85 | org.label-schema.version="${DOCKER_IMAGE_VERSION:-unknown}" \ 86 | org.label-schema.vcs-url="https://github.com/gauravsuman007/megabasterd-docker.git" \ 87 | org.label-schema.schema-version="1.0" 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # megabasterd-docker 2 | 3 | A containerized app for megbasterd from https://github.com/tonikelope/megabasterd 4 | 5 | This is an alpine container with noVNC which enables the running app GUI (Megabasterd) to be accessed from a web browser. I used the base image from https://github.com/jlesage/docker-baseimage-gui and configured it to run Megabasterd. 6 | 7 | ## Setup 8 | ### Step 1: Setting up the docker container 9 | I recommend using docker-compose, a typical script for that would look like: 10 | ``` 11 | version: '3' 12 | services: 13 | megabasterd: 14 | image: gauravsuman007/megabasterd 15 | ports: 16 | - "5800:5800" 17 | volumes: 18 | - "./config:/config:rw" 19 | - "./output:/output:rw" 20 | ``` 21 | 22 | Here the folder `./output` refers to the location where the files will be downloaded on the disk, feel free to modify it as per your needs(This needs to be configured, see step 2) 23 | You can also choose to move the `./config` folder to another location but it's not neccessary. 24 | 25 | Alternatively, you can always clone the repo and build your own image using the provided Dockerfile. 26 | 27 | ### Step 2: Accessing the app and configuring it 28 | The web UI can be accessed at port `5800`. 29 | On the first run, go to the top menu "Edit" -> "Settings", here you should configure the following items: 30 | - Download folder to point it to /output 31 | image 32 | 33 | - MEGA API key (Under Advanced) 34 | image 35 | 36 | - (Optional) Use Smartproxy. 37 | 38 | ## Downloading 39 | The copy paste doesn't work as you would expect in the GUI. To paste a mega link, you first need to open the app clipboard from the top bar and paste your links there. Then you can go to "File" -> "New download" and the links pasted in the clipboard will be accessed automatically. 40 | 41 | ## Updating the megabasterd app 42 | Since Megabasterd updates very frequently I don't plan to provide a lot of updates unless there are breaking changes or I find the time to push out a new update. To manually upüdate to the latest Megabasterd release, download the latest Linux version of their java package, unzip it and copy the MegaBasterd.jar from the jar folder to /config/MegaBasterd/jar/ (replacing the existing file). Restart the container and the new version should be loaded! 43 | -------------------------------------------------------------------------------- /rootfs/.startapp.sh.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gauravsuman007/megabasterd-docker/b6290970b39f8ff8f0d999db068731c8595a91e0/rootfs/.startapp.sh.swp -------------------------------------------------------------------------------- /rootfs/defaults/cfg/laf/FlatDarculaLaf.json: -------------------------------------------------------------------------------- 1 | { 2 | "colorforconfigpaneldescriptiontext" : "#fff8f8f2", 3 | "configlabelenabledtextcolor" : "#fff8f8f2", 4 | "colorfortableselectedrowsforeground" : "#fff8f8f2", 5 | "colorfortablepackagerowforeground" : "#fff8f8f2", 6 | "colorforconfigheadertextcolor" : "#fff8f8f2", 7 | "colorfortablemouseoverrowbackground" : "#ff44475a", 8 | "colorfortablepackagerowbackground" : "#ff2d2e3a", 9 | "colorfortableselectedrowsbackground" : "#ff44475a", 10 | "colorforerrorforeground" : "#ffff5555", 11 | "colorforlinkgrabberdupehighlighter" : "#33ff5555", 12 | "colorfortablemouseoverrowforeground" : "#fff8f8f2", 13 | "colorfortablefilteredview" : "#ff50fa7b", 14 | "colorfortooltipforeground" : "#fff8f8f2", 15 | "colorfortableaccounterrorrowbackground" : "#7fff5555", 16 | "colorforpanelbackground" : "#ff282a36", 17 | "colorfortablealternaterowforeground" : "#fff8f8f2", 18 | "colorforspeedmeterlimitertop" : "#ccff5555", 19 | "colorfortablealternaterowbackground" : "#ff282a36", 20 | "colorfortablesortedcolumnview" : "#ffffb68c", 21 | "colorforpanelheaderbackground" : "#ff282a36" 22 | } -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "autoconnectenabledv2" : true, 3 | "email" : "", 4 | "password" : "", 5 | "devicename" : "JDownloader@Docker" 6 | } 7 | -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.gui.jdtrayicon.TrayExtension.json: -------------------------------------------------------------------------------- 1 | { 2 | "freshinstall" : false, 3 | "enabled" : false 4 | } 5 | -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.gui.notify.gui.BubbleNotifyConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "bubblenotifyenabledstate" : "NEVER" 3 | } 4 | -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.gui.views.linkgrabber.addlinksdialog.LinkgrabberSettings.downloaddestinationhistory.json: -------------------------------------------------------------------------------- 1 | [ { 2 | "name" : "/output", 3 | "time" : 1499250059364 4 | } ] -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.gui.views.linkgrabber.addlinksdialog.LinkgrabberSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "latestdownloaddestinationfolder" : "/output" 3 | } 4 | -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.settings.GeneralSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultdownloadfolder" : "/output" 3 | } 4 | -------------------------------------------------------------------------------- /rootfs/defaults/cfg/org.jdownloader.settings.GraphicalUserInterfaceSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "lookandfeeltheme": "DEFAULT" 3 | } 4 | -------------------------------------------------------------------------------- /rootfs/etc/cont-env.d/INSTALL_PACKAGES_INTERNAL: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e # Exit immediately if a command exits with a non-zero status. 4 | set -u # Treat unset variables as an error. 5 | 6 | if [ -z "${INSTALL_PACKAGES:-}" ] && [ -n "${INSTALL_EXTRA_PKGS:-}" ] 7 | then 8 | >&2 echo "Usage of INSTALL_EXTRA_PKGS environment variable is deprecated. INSTALL_PACKAGES should be used instead." 9 | echo "$INSTALL_EXTRA_PKGS" 10 | else 11 | exit 100 12 | fi 13 | 14 | # vim:ft=sh:ts=4:sw=4:et:sts=4 15 | -------------------------------------------------------------------------------- /rootfs/etc/cont-init.d/55-jdownloader2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e # Exit immediately if a command exits with a non-zero status. 4 | set -u # Treat unset variables as an error. 5 | 6 | # Make sure mandatory directories exist. 7 | mkdir -p /config/logs 8 | 9 | # Set default configuration on new install. 10 | if [ ! -f /config/MegaBasterd/MegaBasterd.run ]; then 11 | cp -r /defaults/MegaBasterd /config/. 12 | cp -r /defaults/cfg /config/. 13 | fi 14 | 15 | # Take ownership of the output directory. 16 | take-ownership --not-recursive /output 17 | 18 | # vim:ft=sh:ts=4:sw=4:et:sts=4 19 | -------------------------------------------------------------------------------- /rootfs/etc/openbox/main-window-selection.xml: -------------------------------------------------------------------------------- 1 | normal 2 | JDownloader 2<Title> 3 | -------------------------------------------------------------------------------- /rootfs/etc/services.d/app/gui.dep: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e # Exit immediately if a command exits with a non-zero status. 4 | set -u # Treat unset variables as an error. 5 | 6 | if is-bool-val-true "${JDOWNLOADER_HEADLESS:-0}"; then 7 | echo "false" 8 | else 9 | echo "true" 10 | fi 11 | 12 | # vim:ft=sh:ts=4:sw=4:et:sts=4 13 | -------------------------------------------------------------------------------- /rootfs/startapp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd /config 4 | /usr/bin/java \ 5 | -XX:-UsePerfData \ 6 | -Dawt.useSystemAAFontSettings=gasp \ 7 | -Djava.awt.headless=false \ 8 | -jar MegaBasterd/jar/MegaBasterd.jar 2>&1 9 | --------------------------------------------------------------------------------