Lorem.space is an online API to generate categorized random image placeholders with custom sizes for your design layout.
Consider that you want to design a movie website or app, instead of downloading a bunch of movie covers, resizing them, and using them statically, you only set an URL (like https://api.lorem.space/image/movie?w=150&h=220) and each time a random movie cover will return.
To use API you can simply send a request to
https://api.lorem.space/image/movie?w=150&h=220. This will return a random movie cover image in 150x220px dimensions. Some other categories like the game cover, music cover, store items, … are available and you can check https://lorem.space for more information.
Lorem.space is an open-sourced program, you can download and run both frontend and backend apps on your local machine.
- Download the latest binary for your operating system: https://github.com/manasky/lorem-server/releases
- Extract the downloaded file
- Open Terminal (for macOS or Linux) and CMD (for windows) and navigate to the extracted folder.
- Make sure the file is executable (grant permissions if needed)
- Run the server with these commands:
# For macOS or Linux:
./lorem-server -host "127.0.0.1:8080" - dir "~/Pictures"
# This will run the server on port 8080 and serves images from ~/Pictures directory
# For Windows:
lorem-server.exe -host "127.0.0.1:8080" -dir "C:\Users\USER\Pictures"
# This will run the server on port 8080 and serves images from `C:\Users\USER\Pictures` directory
Lorem.space server is written in Golang and you can access the source code from here: https://github.com/manasky/lorem-server
To run the server from codes, follow these steps:
- Install Go: https://golang.org/dl/
- Clone the repository:
git clone https://github.com/manasky/lorem-server.git
- Go to the directory of source code, create a new directory named
imagesand put your images (.JPEG format) here. Each directory in
imagesis considered as a category. for example, you can create a directory named
carand put all cars’ images there.
- Open Terminal (for macOS and Linux) or CMD (for Windows), then
cdto the directory of source codes and run:
go run main.go
- Now the server is running on
http://127.0.0.1:8080/imagein your browser and a random image from the
imagesdirectory is returned.
Some arguments are available to run the server:
host: The IP and port of the server host
dir: The address of the images directory
cache: Enables file caching to prevent resizing the image in the same request
cdn: CDN domain
min-width: minimum supported width size in px
max-width: maximum supported width size in px
min-height: minimum supported height size in px
max-height: maximum supported height size in px
A built docker image of the Lorem server is available. You can pull the image by this command:
docker pull ghcr.io/manasky/lorem-server:latest
To run the docker image, you need to create a
.env file containing the server configs:
Then in the directory of
.env run this command in terminal:
docker run - env-file=./.env -p 8080:8090 -v ~/Pictures:/app/images ghcr.io/manasky/lorem-server:latest
— env-filesets the application environment variables path. Here
.envfile exists in the current path.
-p 8080:8080sets up a port forward. the application container will listen to the
8080port (set in the .env file as HOST). This flag maps the container’s port
8080on the host (here, your localhost).
~/Pictures:/app/imagessets up a bind-mount volume that links the directory
/app/imagesfrom inside the app container to the directory
~/Pictureson the host machine (here, your system). The app image directory is set in the
/app/images, so here the
~/Picturesis mounted to that.
After container running, the app will scan
/app/images which is mounted to the directory
~/Pictures of your system & serves the HTTP server on 127.0.0.1:8080. Visit
127.0.0.1:8080/image for start.
Feels free to contribute to the repository or file an issue for feedback or bug reporting in Github.