a4c85a76d5
Co-authored-by: sventec <18218761+sventec@users.noreply.github.com>
87 lines
2.7 KiB
Docker
87 lines
2.7 KiB
Docker
# Use an official Node.js runtime as a parent image
|
|
FROM node:22
|
|
|
|
RUN apt-get update -qq -y && \
|
|
apt-get install -y \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libgtk-4-1 \
|
|
libnss3 \
|
|
xdg-utils \
|
|
wget && \
|
|
wget -q -O chrome-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chrome-linux64.zip && \
|
|
unzip chrome-linux64.zip && \
|
|
rm chrome-linux64.zip && \
|
|
mv chrome-linux64 /opt/chrome/ && \
|
|
ln -s /opt/chrome/chrome /usr/local/bin/ && \
|
|
wget -q -O chromedriver-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chromedriver-linux64.zip && \
|
|
unzip -j chromedriver-linux64.zip chromedriver-linux64/chromedriver && \
|
|
rm chromedriver-linux64.zip && \
|
|
mv chromedriver /usr/local/bin/
|
|
|
|
# Don't run as root
|
|
USER node
|
|
|
|
# Set the working directory in the container
|
|
WORKDIR /usr/src/app
|
|
|
|
# Create the cache directory
|
|
RUN mkdir -p ./cache && chown node:node ./cache
|
|
|
|
# Define environment variables
|
|
ENV NODE_ENV=production
|
|
|
|
ENV ACTUAL_SERVER_URL=""
|
|
ENV ACTUAL_SERVER_PASSWORD=""
|
|
ENV ACTUAL_SYNC_ID=""
|
|
# allow self-signed SSL certs
|
|
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
|
|
|
|
# needed for Selenium+chromedriver
|
|
ENV CHROMEDRIVER_SKIP_DOWNLOAD=true
|
|
|
|
# optional, for encrypted files
|
|
ENV ACTUAL_FILE_PASSWORD=""
|
|
|
|
# optional, if you want to use a different cache directory
|
|
ENV ACTUAL_CACHE_DIR="./cache"
|
|
|
|
# optional, name of the payee for added interest transactions
|
|
ENV INTEREST_PAYEE_NAME="Loan Interest"
|
|
|
|
# optional, name of the payee for added investment transactions
|
|
ENV INVESTMENT_PAYEE_NAME="Investment"
|
|
# optional, name of the category group for added investment tracking transactions
|
|
ENV INVESTMENT_CATEGORY_GROUP_NAME="Income"
|
|
# optional, name of the category for added investment tracking transactions
|
|
ENV INVESTMENT_CATEGORY_NAME="Investment"
|
|
|
|
# optional, for logging into SimpleFIN
|
|
ENV SIMPLEFIN_CREDENTIALS=""
|
|
|
|
# optional, name of the payee for Zestimate entries
|
|
ENV ZESTIMATE_PAYEE_NAME="Zestimate"
|
|
|
|
# optional, name of the payee for KBB entries
|
|
ENV KBB_PAYEE_NAME="KBB"
|
|
|
|
# optional, for retrieving Bitcoin Price (these default to Kraken USD)
|
|
ENV BITCOIN_PRICE_URL="https://api.kraken.com/0/public/Ticker?pair=xbtusd"
|
|
ENV BITCOIN_PRICE_JSON_PATH="result.XXBTZUSD.c[0]"
|
|
ENV BITCOIN_PAYEE_NAME="Bitcoin Price Change"
|
|
|
|
#optional, RentCast API key for fetching property data
|
|
ENV RENTCAST_API_KEY=""
|
|
ENV RENTCAST_PAYEE_NAME="RentCast"
|
|
|
|
VOLUME ./cache
|
|
|
|
# Copy the current directory contents into the container at /usr/src/app
|
|
COPY --chown=node:node . .
|
|
|
|
# Install any needed packages specified in package.json
|
|
RUN npm install && npm update
|
|
|
|
# Run the app when the container launches
|
|
ENTRYPOINT ["tail", "-f", "/dev/null"]
|