Spaces:
Running
Running
| FROM node:24.5.0-slim AS builder | |
| RUN apt-get update && apt-get install -y python3 python3-pip sqlite3 && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /home/perplexica | |
| COPY package.json yarn.lock ./ | |
| RUN yarn install --frozen-lockfile --network-timeout 600000 | |
| COPY tsconfig.json next.config.mjs next-env.d.ts postcss.config.js drizzle.config.ts tailwind.config.ts ./ | |
| COPY src ./src | |
| COPY public ./public | |
| COPY drizzle ./drizzle | |
| RUN mkdir -p /home/perplexica/data | |
| RUN yarn build | |
| FROM node:24.5.0-slim | |
| RUN apt-get update && apt-get install -y \ | |
| python3-dev python3-babel python3-venv python-is-python3 \ | |
| uwsgi uwsgi-plugin-python3 \ | |
| git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev \ | |
| curl sudo nginx openssl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| WORKDIR /home/perplexica | |
| COPY --from=builder /home/perplexica/public ./public | |
| COPY --from=builder /home/perplexica/.next/static ./public/_next/static | |
| COPY --from=builder /home/perplexica/.next/standalone ./ | |
| COPY --from=builder /home/perplexica/data ./data | |
| COPY drizzle ./drizzle | |
| RUN mkdir /home/perplexica/uploads | |
| RUN useradd --shell /bin/bash --system \ | |
| --home-dir "/usr/local/searxng" \ | |
| --comment 'Privacy-respecting metasearch engine' \ | |
| searxng | |
| RUN mkdir "/usr/local/searxng" | |
| RUN mkdir -p /etc/searxng | |
| RUN chown -R "searxng:searxng" "/usr/local/searxng" | |
| COPY hf-searxng/settings.yml /etc/searxng/settings.yml | |
| COPY hf-searxng/limiter.toml /etc/searxng/limiter.toml | |
| COPY hf-searxng/uwsgi.ini /etc/searxng/uwsgi.ini | |
| RUN chown -R searxng:searxng /etc/searxng | |
| USER searxng | |
| RUN git clone "https://github.com/searxng/searxng" \ | |
| "/usr/local/searxng/searxng-src" | |
| RUN python3 -m venv "/usr/local/searxng/searx-pyenv" | |
| RUN "/usr/local/searxng/searx-pyenv/bin/pip" install --upgrade pip setuptools wheel pyyaml msgspec typing_extensions | |
| RUN cd "/usr/local/searxng/searxng-src" && \ | |
| "/usr/local/searxng/searx-pyenv/bin/pip" install --use-pep517 --no-build-isolation -e . | |
| USER root | |
| WORKDIR /home/perplexica | |
| COPY entrypoint.sh ./entrypoint.sh | |
| COPY entrypoint-hf.sh ./entrypoint-hf.sh | |
| COPY hf.nginx.conf ./hf.nginx.conf | |
| RUN chmod +x ./entrypoint.sh | |
| RUN chmod +x ./entrypoint-hf.sh | |
| RUN sed -i 's/\r$//' ./entrypoint.sh || true | |
| RUN sed -i 's/\r$//' ./entrypoint-hf.sh || true | |
| RUN echo "searxng ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | |
| EXPOSE 7860 8080 | |
| ENV SEARXNG_API_URL=http://localhost:8080 | |
| CMD ["/home/perplexica/entrypoint-hf.sh"] | |